【问题标题】:jQuery selecting a checkbox inside form issuejQuery在表单问题中选择一个复选框
【发布时间】:2013-06-16 14:30:28
【问题描述】:

我有一个包含复选框的表单,我想检查第一个是否被用户选中:

<form id= 'other_langs'>
    <input type= 'checkbox' name= 'yes'> I speak other languages <br>
    <input type= 'checkbox' name= 'no'> I do <b>not</b> speak any other language <br>   
</form>

我已经写了jQuery函数

$('#other_langs').click(function(){
  if(('#other_langs').first().prop('checked') == true){alert('ok');}
});

警报(或其他)没有出现。我也试过 .is(':checked') 是一样的。我也试过了

if(('#other_langs input[name="yes"]').prop('checked') == true){alert('ok');}

我使用的是 jQuery 版本 1.9.1,并尝试过 Firefox 和 Chrome。

【问题讨论】:

  • 那么控制台的错误是什么?
  • 你确定单选按钮不会更合适吗?
  • 它说:未知属性'box-sizing'。声明已删除。
  • @adeneo:你是对的。但问题不会是一样的吗?
  • 嗯,是的,也不是。您的代码仍然无法工作,但由于两个收音机的名称相同,因此下面答案中的代码也不会。只是说?

标签: jquery forms checkbox


【解决方案1】:

这样做的时候:

$('#other_langs').first()

您正在检查第一个#other_langs 是否被选中。 #other_langs 是一个表单,你需要做.children() 来获取#other_langs 的第一个孩子。

 $('#other_langs').children().first()

【讨论】:

    【解决方案2】:

    您在第二个示例中错过了$在第一个示例中也是如此,但方法错误)-

    if($('#other_langs input[name="yes"]').prop('checked') == true){
      alert('ok');
    }
    

    演示---&gt;http://jsfiddle.net/zKkXp/

    你可以让你的第一个例子像这样工作 -

    if($('#other_langs input').first().prop('checked') == true){
      alert('ok');
    }
    

    演示--&gt;http://jsfiddle.net/zKkXp/1/

    【讨论】:

    • 你是对的,它的工作原理是这样的。但是为什么第一个代码不起作用呢?
    • @martina 你可以让第一个像这样工作--&gt;if($('#other_langs input').first().prop('checked') == true){alert('ok');}
    • $('#other_langs input[name="yes"]:checked').length 不会更容易吗?
    • 您提供的其他代码不起作用,因为我需要将 .children() 放在 .first() 之前,请参阅上面 K.A Gagnon 的回答。 @adeneo:通过长度,我得到了检查项目的数量,但我仍然需要知道检查了哪一个。无论如何,您关于使用单选按钮的建议在这个意义上可能会有所帮助。
    • 好吧,只有一个名为 yes 的复选框,因此如果选中该复选框,则选择该复选框将给出选择器长度,否则长度将为零,这将是真实/虚假并且可以使用处于某种状态。
    猜你喜欢
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多