JavaScript .selectedIndex只更改文本值而不是实际选择选项

时间:2017-03-19 22:10:14

标签: javascript forms

***编辑 - 从Firefox 52.0.1(32位)切换到Chrome解决了这个问题**

我试图加快某些会计软件中的某些数据输入,并设置代码将详细信息输入表单以生成发票。问题在于选择框。

document.getElementById('invoice_bank_account_id').selectedIndex = 2;

正确地将下拉菜单选项设置为我需要的内容。

然而,这只会更改文本,当我单击相关表单的提交按钮时,它的行为就像我从未更改所选选项并默认为下拉列表中的第一个选项。我必须亲自选择并点击它以更新'正常。

选择我的选项以便在表单提交上工作后,我需要做什么?

我也尝试了各种组合,例如

document.getElementById('invoice_bank_account_id').options[2].selected = true;

......结果相同。

表格的代码是:

<fieldset id="advanced_options_fieldset" class="blockf">
<div id="advanced_options">
<p><label for="invoice_bank_account_id">Bank account</label><select id="invoice_bank_account_id" name="invoice[bank_account_id]">
<option selected="selected" value="385057" data-currency="GBP">Customer Deposits</option>
<option value="164288" data-currency="GBP">Business Current Account</option>
<option value="327151" data-currency="GBP">Deposit Account</option>

</p>
</div>
</fieldset>

我也尝试过引用该选项的值但是没有用。我显然错过了一些东西。

提前致谢,这是我在论坛上发表的第一篇文章。

2 个答案:

答案 0 :(得分:0)

只需切换到Chrome即可解决问题。我使用的是Firefox 52.0.1(32位)和Chrome 56.0.2924.87

答案 1 :(得分:0)

改为改变价值:

document.getElementById('invoice_bank_account_id').value = "327151"; 
// (Deposit Account)