选择了禁用的选项后,select的值是什么?

时间:2018-12-17 20:21:13

标签: jquery html-select

我正在使用以下html来获取默认选中的禁用选项“选择城镇”作为一种占位符。

<select name="town">
    <option selected disabled value="xx">-- Select a town --</option>
    <option value="xx">Paris</option>
    <option value="xx">London</option>
    <option value="xx">Budapest</option>
</select>

现在,我想测试用户是否选择了任何选项,或者它是否仍然为空。
我认为使用jquery($('select[name="town"]').val();)测试选择值将返回值“ xx”。
取而代之的是,.val()返回null。

我在文档(http://api.jquery.com/val/)中找不到这种行为的踪迹。

选择禁用的选项后,我可以依靠.val()返回null吗?它在任何地方都有记录吗?

还是我必须同时检查value属性的空值和实际值(在上面的示例中为“ xx”)?

1 个答案:

答案 0 :(得分:0)

您无法选择禁用的选项,因此该值(无论您将其设置为什么)都将始终返回null。这是预期的行为。

虽然文档未指定禁用选项,但确实会显示

  

如果未选择任何选项,则返回一个空数组;在jQuery 3.0之前,它返回null

也应该禁用选项。您仍然可以进行测试!

我们可以使用if语句检查该值是否返回null。如果不是 null

,则以下if语句将返回true
if ($('select[name="town"]').val() != null) {
   console.log('Option selected.');
}

如果要测试其他选项,可以将!= null替换为== value。 本质上,您可以将它用作if语句,else if语句,else语句的倍数。


或者,您可以通过以下方式获取禁用的选定选项的值:

$('select[name="town"] option[disabled]:selected').val();

感谢SO answer

相关问题