【问题标题】:Getting amount of checkboxes checked by name获取按名称检查的复选框数量
【发布时间】:2014-07-11 19:10:12
【问题描述】:

我试图找出有多少复选框已被选中,但遇到了一些问题..

我的复选框都命名为delete[]

var count = ($('#form_store_setup input[name=delete]:checked').length);

...这根本不起作用:

var count = ($('#form_store_setup input[name=delete[]]:checked').length);

【问题讨论】:

  • 只需在第二个示例中将 delete[] 用双引号括起来,例如 var count = ($('#form_store_setup input[name="delete[]"]:checked').length);

标签: javascript jquery checkbox checked


【解决方案1】:

您需要转义方括号。试试这个:

var count = $('#form_store_setup input[name=delete\\[\\]]:checked').length;

或者将属性值放在引号中:

var count = $('#form_store_setup input[name="delete[]"]:checked').length;

【讨论】:

  • var count = ($('#form_store_setup input[name="delete[]"]:checked').length); ?
【解决方案2】:

假设您没有任何其他以delete 开头的命名项目,您可以使用“开头为”匹配:

var count = ($('#form_store_setup input[name^=delete]:checked').length);

【讨论】:

  • 如果复选框有一个名称,例如delete_this :/
  • 只是一个建议,它确实取决于页面上的其他内容...有点困惑为什么他们首先有delete[] :) 仅在没有其他@987654325 的情况下更新答案以限定使用@元素存在。
  • @TrueBlueAussie 在 PHP 中用于将一组元素值作为数组发送。
  • @Rory McCrossan:啊,MVC 的做法类似,但括号中的索引值也是如此。
【解决方案3】:

在第二个示例中将 delete[] 用双引号括起来,如下所示:

var count = ($('#form_store_setup input[name="delete[]"]:checked').length);

【讨论】:

    【解决方案4】:

    这应该可以解决问题。尝试在您的输入名称周围添加单引号。您也可以调用 .size() 而不是 .length 以获得相同的效果。

    var count = ($('#form_store_setup input[name='delete[]']:checked').length);
    

    有关 size() 函数的参考请参阅此文档 (http://api.jquery.com/size/)

    【讨论】:

    • 单引号内的单引号...失败了! :)
    猜你喜欢
    • 2012-12-16
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多