jQuery计算符合所需值的选择输入数量

3

我有一个(由Django生成的)表单,其内容如下:

<form action="./" id="my_form" method="post">
...
<select name="object_0_status" id="id_object_0_status">
<option value="">---------</option>
<option value="1">Online</option>
<option value="2">Offline</option>
<option value="3">Unknown</option>
</select>
<select name="object_1_status" id="id_object_1_status">
<option value="">---------</option>
<option value="1">Online</option>
<option value="2">Offline</option>
<option value="3">Unknown</option>
</select>
<select name="object_2_status" id="id_object_2_status">
<option value="">---------</option>
<option value="1">Online</option>
<option value="2">Offline</option>
<option value="3">Unknown</option>
</select>
    ...
</form>

我正在编写一个自定义验证方法(使用JQuery Validations插件http://docs.jquery.com/Plugins/validation),用于跨检查表单上的不同条目。为此,我需要获取所选值设置为“1”(例如在线)的选择框数量。
选择框由表单工厂生成,因此它们的数量是可变的。表单上还有其他选择选项不应计数 - 只有以“_status”结尾的选项。
最干净的方法是什么?
谢谢
2个回答

8
$('select[id$=_status] option:selected[value="1"]').length;

请查看此处的示例。

2
您可以使用“以选择器结尾”的方法:ends with selector
alert($('select[id$=_status]').find('option[value=1]').length);

这段代码将遍历所有id以_status结尾的下拉框,然后使用find查找其中值设置为1option


这并不能找到是否选择了该选项...? - fearofawhackplanet
@fearofawhackplanet:选择的选项将始终返回长度为1,因为只能选择一个选项。但是可以使用:selected过滤器选择器来解决这个问题。 - Sarfraz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接