jQuery:选中复选框

前端之家收集整理的这篇文章主要介绍了jQuery:选中复选框前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有以下HTML:
<form id="myform">
  <input type='checkBox' name='foo[]'/> Check 1<br/>
  <input type='checkBox' name='foo[]' checked='true'/> Check 2<br/>
  <input type='checkBox' name='foo[]'/> Check 3<br/>
</form>

现在,如何选择名为“foo []”的已检查输入字段?

这是我的尝试,但它不工作:

$('#myform input[name='foo']:checked:enabled');

解决方法

该字段的名称不是foo,它是foo []。你可以使用 attributeStartsWith选择器:
$("input[name^='foo']:checked:enabled",'#myform');

理想情况下,您可以这样做:

$("input[name='foo[]']:checked:enabled",'#myform');

但是正如this answer解释,jQuery使用它来解析attr = value条件的值部分:

(['"]*)(.*?)\3|)\s*\]

\3 being the group containing the opening quotes,which weirdly are allowed to be multiple opening quotes,or no opening quotes at all. The .*? then can parse any character,including quotes until it hits the first ‘]’ character,ending the match. There is no provision for backslash-escaping CSS special characters,so you can’t match an arbitrary string value in jQuery.

换句话说,一旦jQuery命中第一],它认为价值已经结束。所以你被困在了startsWith或使用纯DOM元素,因为这个答案也解释了。

SUPER DUPER重要编辑:这个bug是固定的,显然。你应该能够使用我描述为“理想”的代码,上面。

原文链接:https://www.f2er.com/jquery/184474.html

猜你在找的jQuery相关文章