2011-07-17 25 views
0

我试图在rails上包含this here和复选框。为什么jQuery不拾取复选框“单击”事件?

我的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]”,但没有运气。

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

+0

[Works for me](http://jsfiddle.net/vkbdP/)。你在做什么来确保在代码运行之前加载DOM? – user113716

+0

你用萤火虫? –

+0

......有很多方法可以做到这一点,但一种可能的解决方案是将代码包装在发送给jQuery的'ready()'方法的处理程序中。 'jQuery(function(){/ * ... your code ... * /});' – user113716

回答

2

你需要这样做:

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

太好了,谢谢!我会阅读这个:http://docs.jquery.com/Tutorials:Introducing_$(document).ready() –

0

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

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

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

0

你上面的代码不是问题,对我来说工作正常。我建立一个测试页面,只有在它执行以下操作:

<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> 

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