<body>
<input class="forminput" type="checkbox" value="test one" checked="checked" name="VD1">
<br>
<input class="forminput" type="checkbox" value="test two" checked="checked" name="VD2">
<br>
<input class="forminput" type="checkbox" value="test three" checked="checked" name="VD3">
<br>
<input class="forminput" type="checkbox" value="test four" checked="checked" name="VD4">
<br>
<input class="forminput" type="checkbox" value="test five" checked="checked" name="VD5">
<br>
<input id="checkall" type="checkbox" checked="checked" name="checkall">
<input id="copyvalue" class="button" type="button" value="copy test">
</body>
我想要检查如果用户没有选中一个复选框,那么如果他点击copy test
,它将警告一个框,说“你至少选中一个框”。
$(document).ready(function(){
$("#copyvalue").click(function(){
if (!$(.forminput).checked){
alert('teet');
}
});
但是代码不起作用。
发布于 2011-06-17 09:49:04
您的语法错误,并且缺少右大括号和圆括号。
你可以写
$(document).ready(function(){
$("#copyvalue").click(function(){
if ($(".forminput:checked").length === 0){
alert('teet');
}
});
});
请注意,选择器是一个字符串。
:checked
选择器将元素筛选为选中的复选框。
这段代码检查是否有任何:checked
.forminput
元素。
发布于 2011-06-17 10:00:45
这个问题的一部分是你遗漏了一个右大括号和圆括号,代码应该是这样的,
$(document).ready(function() {
$("#copyvalue").click(function() {
// ...
});
});
正如@Luis所指出的,另一个问题是您没有引用".forminput“元素的选择器。如果您正确地引用它们,它将如下所示:
if (!$(".forminput").checked){
alert('teet');
}
但是这仍然是行不通的,因为正如@SLaks和@james所指出的,".checked“不是一个可以在the jQuery object上调用的属性。
我将赞扬@SLaks提出了代码的中间部分来检查选中的元素,即
if ($(".forminput:checked").length == 0){
alert('teet');
}
之所以使用jQuery对象的length property,是因为每个jQuery对象都是选择器匹配的元素的集合(请参见http://api.jquery.com/Types/#jQuery):
HTML包含从
字符串创建或从文档中选择的文档对象模型(DOM)元素的集合。
因此,如果选中输入框的选择器返回长度为0的jQuery对象,则表示没有选中任何输入框。
您不想使用jQuery attr method的原因是,
$(document).ready(function(){
$("#copyvalue").click(function(){
if (!$('.forminput').attr("checked")){
alert('teet');
}
});
});
是因为attr
方法获取的属性值,这是匹配元素集中的第一个元素。因此,如果第一个输入框中除之外的所有输入框都被选中,代码将触发错误警报。
发布于 2011-06-17 09:56:29
选择器需要加引号,并且选中是选择器而不是方法。
$(document).ready(function(){
$("#copyvalue").click(function(){
if ($(".forminput:checked").length==0){
alert('teet');
}
});
});
https://stackoverflow.com/questions/6380578
复制相似问题