我有一个奇怪的问题。
我的下拉列表中包含否空值选项,即
<option value="">Select</option>
我的下拉菜单:
<select name="dropdown" id="dropdown">
<option value="0">Option 0</option>
<option value="1">Option 1</option>
</select>
但是,当我像这样设置下拉值时:
$('#dropdown').val("")
下拉列表显示一个空选项,尽管列表中没有此类选项。 为什么会这样? 我检查了我的代码和html,但没有找到任何空选项或任何设置空选项的代码。
这可能是什么原因?
答案 0 :(得分:0)
如果您传递任何非现有值(没有必要传递“”)到此方法,它将清除select元素,因为没有匹配选项。因此,使用选定的索引动态选择选项。
$("#list")[0].selectedIndex = 1;
答案 1 :(得分:0)
似乎设置 <select>
元素的值会导致问题;可能是由于value
元素的实现/处理方式不同<select>
属性,例如:
$('#dropdown').prop("value", function(){
console.log(this.value, this.options[this.selectedIndex]);
// 0 <option value="0">...</option>
}).val('').prop("value", function(){
console.log(this.value, this.options[this.selectedIndex]);
// undefined
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="dropdown" id="dropdown">
<option value="0">Option 0</option>
<option value="1">Option 1</option>
</select>
&#13;
要将值设置为,例如1
:
$('#dropdown').prop("selectedIndex", function () {
return $('options[value="1"]', this).index();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="dropdown" id="dropdown">
<option value="0">Option 0</option>
<option value="1">Option 1</option>
</select>
&#13;
或者:
$('#dropdown option[value="1"]').prop("selected", true);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="dropdown" id="dropdown">
<option value="0">Option 0</option>
<option value="1">Option 1</option>
</select>
&#13;