我有一个(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'的选项。
最干净的方法是什么?
由于
答案 0 :(得分:7)
$('select[id$=_status] option:selected[value="1"]').length;
参见示例here
答案 1 :(得分:2)
您可以使用ends with selector
:
alert($('select[id$=_status]').find('option[value=1]').length);
这会在所有选项框中以_status
结尾,然后使用find
查找option
,其值设置为1
。