Javascriptを用いて、ECサイト上の項目に自動入力することに取り組んでいます。
下記のような<select>があり、
html
1<select id="sample"> 2 <option value="">素材を選択</option> 3 <option value="0">その他の素材</option> 4 <option value="1">紙</option> 5</select>
下記のようなJavaScriptをConsoleから実行したところ、
ドロップダウンリストの値が変更されず、困っています。
javascript
1document.querySelector("#sample").value = 1 2document.querySelector("#sample").options[2].selected = true
※ドロップダウンリストの表示には、反映されておらず、

※クリックして表示すると、選択リスト上では選択されている。

念の為、下記コードにて、値が変更されているか確認したのですが、
値自体は変更されていました。
selectedIndexで調べると値は変更されているが、
ドロップダウンリスト上では、変更されていない、という状態です。
javascript
1document.querySelector("#sample").selectedIndex 2// => 2
値は変更されているから、そのまま「編集を完了する」ボタンを押して確定すれば、
問題ないのかなと思ったのですが、
内容が反映されていませんでした。
補足情報(FW/ツールのバージョンなど)
・ MacOS 10.14.6
・ Safari 14.1.1
「ドロップダウンリスト上では」はどういう意味でしょうか? ページ上のメニューを開いていない<select>の中身ではなくて、メニューを開くと期待と違う表示なのでしょうか? ドロップダウンリストは本当に <select> が表示しているものですか? スクリーンショットを載せられますか?
ご指摘ありがとうございます。スクリーンショットを追加しました。
情報の更新ありがとうございます。
その「ECサイト」のURLを開示することはできますか? 画面上で「素材を選択」を表示しているのは本当にターゲットの <select> 要素ですか?
シンプルなHTMLでは問題が再現しないので、問題を再現できるよう情報を提供する必要があります。
ECサイトのURLは下記となります。
https://jp.pinkoi.com/panel/listings/new
ただ、会員登録が必要なサイトなので、
このような場合、コードをどこかにアップロードするなどしたほうが宜しいでしょうか?
サイトのコードを勝手にコピーして公開するのは著作権的にダメでしょう。
* 会員登録しなくても問題を再現できるURLを見つける。または
* サイトのHTML/JSコードを分析して質問者さん自身が問題を再現できるコードを作り上げる
でしょうか。
ご回答ありがとうございます。
実際に、<select>タブ周りだけを抜き出してみて、
htmlコードを作成してみたのですが、その場合ですと、
問題なく、値の変更が出来ました。
回答3件
あなたの回答
tips
プレビュー