【问题标题】:Why is jQuery not picking up checkbox "click" event?为什么jQuery没有选择复选框“点击”事件?
【发布时间】:2011-07-18 04:33:28
【问题描述】:

我正在尝试将 this here 与 Rails 上的复选框合并。

我的 HTML 如下所示:

<div>
  <input id="reservation_item_ids_" name="reservation[item_ids][]" type="checkbox" value="17">

RCF,32.0 欧元/vrk

像这样的代码(我使用 jQuery 而不是 $ 来避免与原型冲突,在 Rails 3 中默认使用):

    console.log("Initialize!");
jQuery("input[type=checkbox]").click(function() {
    console.log("Clicked!");

   var total = 0;

    jQuery("input[type=checkbox]:checked").each(function() {
    total += parseFloat(jQuery(this).val());
    });

    jQuery("#totalSum").val(total);
});

我的控制台只给了我这个:

初始化!

..不管我点击了多少复选框。我还尝试用“#reservation_item_ids”替换“input[type=checkbox]”,但没有成功。

没有错误,没有任何线索..

【问题讨论】:

  • Works for me。你在做什么来确保在你的代码运行之前加载 DOM?
  • ...有很多方法可以做到这一点,但一种可能的解决方案是将您的代码包装在一个处理程序中,该处理程序发送到 jQuery 的ready() 方法。 jQuery(function() { /* ...your code... */ });
  • 仔细检查页面上的 id 是否唯一
  • 关于 jsFiddle 的问题:就“就绪”方法而言,它的行为是否与浏览器相同?如果提问者有时间问题,那么它会被 jsFiddle 发现吗?无论如何,这是一个非常酷的网站...

标签: ruby-on-rails click jquery


【解决方案1】:

你需要这样做:

jQuery(document).ready(function($) {
    jQuery("input[type=checkbox]").click(function() {
        alert('It works!')
    })
})

【讨论】:

【解决方案2】:

这是动态 HTML 吗?你试过 live() 吗?

jQuery("input[type=checkbox]").live('click', function() {

有些系统不太喜欢“点击”方法。

【讨论】:

    【解决方案3】:

    你上面的代码不是问题,它对我来说很好。我设置了一个测试页面,其中只有以下内容:

    <form>
        <input id="num1" type="checkbox" value="1"><br />
        <input id="num2" type="checkbox" value="1"><br />
        <input id="num3" type="checkbox" value="1"><br />
        <input id="num4" type="checkbox" value="1"><br />
    
        <input type="submit" value="Submit" />
    </form>
    

    我什至提醒了你的总数,它工作得很好!由于您设置它们的方式,选择器可能没有选择您的复选框。您可以复制/粘贴您的表单代码吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      • 2022-01-24
      • 2010-12-11
      • 2013-03-11
      • 1970-01-01
      • 1970-01-01
      • 2014-10-21
      相关资源
      最近更新 更多