我得到了以下兩個dropdown
列表,我想刪除其中任一選項。因此,如果選擇選項1,它將不在列表2中。普通JavaScript刪除項目從下拉列表中選擇
<select class='form-dropdown' name='first' id='first'>
<option value='none' selected>No Choice</option>
<option value='Workshop 1'> Workshop 1 </option>
<option value='Workshop 2'> Workshop 2 </option>
<option value='Workshop 3'> Workshop 3 </option>
<option value='Workshop 4'> Workshop 4 </option>
<option value='Workshop 5'> Workshop 5 </option>
</select>
<select class='form-dropdown' name='second' id='second'>
<option value='none' selected>No Choice</option>
<option value='Workshop 1'> Workshop 1 </option>
<option value='Workshop 2'> Workshop 2 </option>
<option value='Workshop 3'> Workshop 3 </option>
<option value='Workshop 4'> Workshop 4 </option>
<option value='Workshop 5'> Workshop 5 </option>
</select>
這在普通的舊JavaScript中如何實現?
編輯:
的錯誤Uncaught TypeError: Cannot read property 'addEventListener' of null
是由在window.onload加載事件監聽()解決,見下文
window.onload = function() {
document.getElementById("first").addEventListener("change", function() {
show_all("second");
document.querySelector("#second option[value='"+this.value+"']").style.display="none";
});
document.getElementById("second").addEventListener("change", function() {
show_all("first");
document.querySelector("#first option[value='"+this.value+"']").style.display="none";
});
};
function show_all(select_name){
var second_options = document.querySelectorAll("#"+select_name+" option");
for(var i=0;i<second_options.length;i++){
second_options[i].style.display="block";
}
}
豈不是更好地先用值來填充第二個下拉,每第一個值改變的時間? –
https://jsfiddle.net/xh3qb8r6/ – adeneo
我的問題是,我的表單有三個這樣的列表不能用於像Zer00ne這樣的代碼,所以我認爲這是因爲JQuery的東西。這也是爲什麼我想要一個普通的JavaScript解決方案。 –