2017-03-19 29 views
0

***编辑 - 开关从Firefox 52.0.1(32位)到Chrome解决了这个问题**的JavaScript .selectedIndex只改变文本值而不是实际选择选项

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

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> 

我也通过引用选项的值,以及可靠的,但没有奏效。我明显错过了一些东西。提前

谢谢,这是我在论坛上的第一篇文章。

+0

也尝试将值属性设置为选项的内部HTML。 – TheValyreanGroup

+2

您的HTML无效。没有''标签。在纠正之前,我不会做任何事情。 –

+1

...最终,我无法在Firefox或Chrome中重现该问题。两者都发送已设置的'.selectedIndex'的值。您将需要提供完整的演示,并告诉我们您使用的浏览器。 –

回答

0

通过简单地切换到Chrome这解决了这个问题。我使用Firefox 52.0.1(32位)和Chrome 56.0.2924.87

+0

你放弃了对Firefox的支持吗? –

0

更改值,而不是:

document.getElementById('invoice_bank_account_id').value = "327151"; 
// (Deposit Account) 
相关问题