我已經很難找到了這個問題的一個標題,那麼基本上是這樣的:原始的HTML的選擇:刪除選項將顯示選擇
編程方式修改HTML,選擇的選項,然後突然第一選項被顯示在選擇框,雖然我沒有點擊它,
下面是完整的源代碼:
$('#mySelect').val('');
setTimeout(function() {
$('#333').remove();
setTimeout(function() {
$('#mySelect').val('');
}, 2000);
}, 2000);
<script src="//code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script>
<form>
<select id="mySelect">
<option id="111" value="111">first</option>
<option id="222" value="222">second</option>
<option id="333" value="333">third</option>
</select>
</form>
現在來澄清一下情況:
我想根據用戶已經放入表單的其他元素的信息來修改選擇下拉菜單。更具體地說,我想從選擇中刪除某些選項,以防它們不適用於用戶。
但是,在那裏,當我從尚未被用戶觸摸的下拉列表中移除選項時,所述選擇下拉菜單的第一個選項將彈出到視圖中。
爲了防止我不得不將select-dropdown的值重置爲空字符串,我覺得這很刺激。我希望select-dropdown不會改變它的空狀態,只是因爲我刪除了其中一個選項。
在代碼片段中,您可以看到通過三次超時模擬的行爲。
現在的問題:我會考慮瀏覽器的行爲(顯示第一個選項,雖然用戶沒有點擊任何東西)的錯誤。當然,這不是開發人員可以預見的行爲,因爲他只是刪除了以前未觸及的(原始)選擇下拉列表中的一個選項?這是一個錯誤?還是我只是爲了固執?