jQuery:选择选中的复选框

2020/12/25 10:51 · jquery ·  · 0评论

假设我有以下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');

但是正如这个答案所解释的,jQuery使用它来解析条件value一部分attr=value

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

\ 3是包含开头引号的组,奇怪的是,它们可以是多个开头引号,或者根本不允许开头引号。。*?然后可以解析任何字符,包括引号,直到它到达第一个']'字符为止,从而结束比赛。没有提供用于反斜杠转义的CSS特殊字符的规定,因此您无法在jQuery中匹配任意字符串值。

换句话说,一旦jQuery达到第一个,]它就认为值已结束。因此,您只能使用startsWith或使用纯DOM元素,正如该答案还说明的那样。

SUPER DUPER重要编辑

显然,此错误已修复。
您应该可以使用上面描述为“理想”的代码。

选择时应引用该属性,并包括[]

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

实际上,您所拥有的一切都很好,只需使用双引号,并包括方括号即可匹配。

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

您可以在这里查看它的运行情况:http :
//jsbin.com/oyoro

请注意,jQuery过去在括号内经常出现问题,这可以解释围绕转义的需求造成的许多困惑。我知道我已经在括号中加上引号。

请参阅:http//dev.jquery.com/ticket/3443

我相信它是这样的:

$("input #foo[] :checked");

编辑:评论者是正确的。我本来应该第一时间回应的。:)这次,我将使用“ ^”。

$("input[name^=foo] :checked");
本文地址:http://jquery.askforanswer.com/jqueryxuanzexuanzhongdefuxuankuang.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!