首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以最好的方式在jquery中创建条件?

如何以最好的方式在jquery中创建条件?
EN

Stack Overflow用户
提问于 2011-06-17 09:45:52
回答 3查看 449关注 0票数 0
代码语言:javascript
运行
复制
<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,它将警告一个框,说“你至少选中一个框”。

代码语言:javascript
运行
复制
$(document).ready(function(){
    $("#copyvalue").click(function(){
        if (!$(.forminput).checked){
            alert('teet');
        }
    });

但是代码不起作用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-17 09:49:04

您的语法错误,并且缺少右大括号和圆括号。

你可以写

代码语言:javascript
运行
复制
$(document).ready(function(){
    $("#copyvalue").click(function(){
        if ($(".forminput:checked").length === 0){
            alert('teet');
        }
    });
});

请注意,选择器是一个字符串。

:checked选择器将元素筛选为选中的复选框。

这段代码检查是否有任何:checked .forminput元素。

票数 3
EN

Stack Overflow用户

发布于 2011-06-17 10:00:45

这个问题的一部分是你遗漏了一个右大括号和圆括号,代码应该是这样的,

代码语言:javascript
运行
复制
$(document).ready(function() {
    $("#copyvalue").click(function() {
        // ...
    });
});

正如@Luis所指出的,另一个问题是您没有引用".forminput“元素的选择器。如果您正确地引用它们,它将如下所示:

代码语言:javascript
运行
复制
if (!$(".forminput").checked){
    alert('teet');
}

但是这仍然是行不通的,因为正如@SLaks和@james所指出的,".checked“不是一个可以在the jQuery object上调用的属性。

我将赞扬@SLaks提出了代码的中间部分来检查选中的元素,即

代码语言:javascript
运行
复制
if ($(".forminput:checked").length == 0){
    alert('teet');
}

之所以使用jQuery对象的length property,是因为每个jQuery对象都是选择器匹配的元素的集合(请参见http://api.jquery.com/Types/#jQuery):

HTML包含从

字符串创建或从文档中选择的文档对象模型(DOM)元素的集合。

因此,如果选中输入框的选择器返回长度为0的jQuery对象,则表示没有选中任何输入框。

您不想使用jQuery attr method的原因是,

代码语言:javascript
运行
复制
$(document).ready(function(){
    $("#copyvalue").click(function(){
        if (!$('.forminput').attr("checked")){
            alert('teet');
        }
    });
});

是因为attr方法获取的属性值,这是匹配元素集中的第一个元素。因此,如果第一个输入框中除之外的所有输入框都被选中,代码将触发错误警报。

票数 3
EN

Stack Overflow用户

发布于 2011-06-17 09:56:29

选择器需要加引号,并且选中是选择器而不是方法。

代码语言:javascript
运行
复制
$(document).ready(function(){
    $("#copyvalue").click(function(){
        if ($(".forminput:checked").length==0){
            alert('teet');
        }
    });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6380578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档