【问题标题】:Select a value of selectbox using javascript properly?正确使用javascript选择选择框的值?
【发布时间】:2020-12-29 23:02:00
【问题描述】:

我正在尝试使用 javascript 选择选择框的特定值。我计划使用 jQuery 来选择一个元素,但不知何故,我试图自动化的网站阻止了它或者没有使用 jQuery。

所以,我使用document.querySelector(); 选择了一个元素。 如下所示。

document.querySelector("#softBoardListLayer > div:nth-of-type(2) > div:nth-of-type(1) > table > tbody > tr:nth-of-type(1) > td > select").selectedIndex = 01;

确实有效。运行此 javascript 后,Selectbox 会显示我使用此命令选择的值。

但是当我点击网站底部的确认按钮转到下一页时,网站说我没有选择任何东西。

这里是 html 的选择框部分。

<select data-v-f6ebec28="" name="" id="">
    <option data-v-f6ebec28="" value="">Select...</option>
    <option data-v-f6ebec28="" value="01">Seoul</option>
    <option data-v-f6ebec28="" value="02">Busan</option>
    <option data-v-f6ebec28="" value="03">Jeju</option>
</select>

有什么方法可以正确选择selectbox的值吗?

【问题讨论】:

  • 您需要提供all相关代码,我们才能看到问题所在。您提供的 JavaScript 代码与您添加的 HTML 完全无关。

标签: javascript html jquery jquery-selectbox


【解决方案1】:

您必须对 HTML 代码进行非常小的更改。
首先,您必须设置选择标签的 id。
然后,您必须将该 id 放入 document.querySelector("#select-option") 语句中。

document.querySelector("#select-option").value = '01';
<select data-v-f6ebec28="" name="" id="select-option">
    <option data-v-f6ebec28="" value="">Select...</option>
    <option data-v-f6ebec28="" value="01">Seoul</option>
    <option data-v-f6ebec28="" value="02">Busan</option>
    <option data-v-f6ebec28="" value="03">Jeju</option>
</select>

【讨论】:

  • 但是我试图运行 javascript 代码的网站不是我的。所以我无法设置 ID。
  • 你能给我一个网址吗?我可以看到更多可能的实现方式。
  • hcs.eduro.go.kr/#/loginHome 点击“开始”-> 搜索学校。在该页面中,我想为第二个选择框选择“서울특별시”,意思是“首尔”和“고등학교”,意思是“高中”。学校名称是“구암고”,只需复制并粘贴学校名称即可。之后,您需要点击搜索按钮。如果选择成功,它将显示一所学校以供选择,如果未成功选择,则会发出警报。
  • 我知道了你可以试试document.querySelector("select").value = '01';
  • 是的,我试过了,但选择不正确。如果我只是通过更改选择框的值来选择,当我点击搜索按钮时,它说我还没有选择任何东西。
【解决方案2】:

您必须在&lt;option&gt; 元素上设置selected 属性。这不仅会更改 UI,还可以确保您通过询问元素的 .value 属性得到正确的值:

function setSelected(selectEl, valueToSelect) {
  var options = selectEl.children, i = 0;
  for (; i < options.length; i += 1) {
    if (options[i].value === valueToSelect) { // <-- if the option has the value
      options[i].selected = 'selected'; // <-- select it
    } else {
      options[i].selected = null; // <-- otherwise deselect it
    }
  }
}



var select = document.querySelector('select');
setSelected(select, '03');

console.log('Selected value is:', select.value);
<select data-v-f6ebec28="" name="" id="">
    <option data-v-f6ebec28="" value="">Select...</option>
    <option data-v-f6ebec28="" value="01">Seoul</option>
    <option data-v-f6ebec28="" value="02">Busan</option>
    <option data-v-f6ebec28="" value="03">Jeju</option>
</select>

【讨论】:

  • 我试过了,但没有运气,如果您不介意,请查看我对我描述的关于我尝试使用这些 javascripts 的网站的 bhumin 回答的评论?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
  • 1970-01-01
  • 2018-04-20
  • 2017-08-01
  • 2018-08-09
  • 1970-01-01
  • 2012-11-05
相关资源
最近更新 更多