【发布时间】:2012-04-05 17:08:59
【问题描述】:
是否可以检测选择框中是否没有明确选择任何选项?
我已经尝试了这些方法,但它们都不起作用:
<select id="mySelect">
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
<option value="4">Fourth</option>
</select>
试验一:
alert($('#select option:selected').length); // returns 1
试验 2:
alert($('#select option[selected=selected]').length); // returns 1
试验 3:
alert($('#select option:selected').attr('selected')); // returns 'selected'
有什么想法吗?
【问题讨论】:
-
您总是会选择一个选项,因为默认情况下它总是会选择页面加载时的第一项。你需要添加一个
<option value=""></option>,并测试该值是否为空。 -
@Ohgodwhy 我在运行时的选择框中添加了一个 。但它永远不会来自':selected'。 jQuery ':selected' 不考虑动态添加的选项吗?
-
你猜对了。 Prepend 是在 dom 加载之后添加它,所以第一个选择的项目将是第一个 @ DOM 加载时间的项目。
-
@Ohgodwhy 感谢您的解释!
-
写这个只是为了好玩,因此分享(您的问题的演示排序测试用例):jsfiddle.net/g3qc9/6 特别喜欢@david 的所有答案,干杯!
标签: javascript jquery select