2017-03-19 30 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) 
相關問題