当我动态生成复选框时,我无法使用javascript访问复选框的键

我在html.erb中创建了一个复选框,如下所示:

    

我创建了javascript来设置一个或另一个:

 $('#fenix_fee_charged').click(function(){ $('#fenix_fee_no_charged').removeAttr("checked"); }); $('#fenix_fee_no_charged').click(function(){ $('#fenix_fee_charged').removeAttr("checked"); }); 

当我的检查选项增加时,我决定动态创建复选框:

    "checkbox inline" %>  

当我检查javascript函数时,这不起作用。 我很感激你能给我的任何帮助!

由于复选框是动态添加的,因此您需要使用事件委派来注册事件处理程序

 // New way (jQuery 1.7+) - .on(events, selector, handler) $(document).on('click', '#fenix_fee_charged', function(event) { $('#fenix_fee_no_charged').removeAttr("checked"); }); $(document).on('click', '#fenix_fee_no_charged', function(event) { $('#fenix_fee_charged').removeAttr("checked"); }); 

编辑

也尝试使用.prop()方法,如:

 // Uncheck the checkbox $('#fenix_fee_no_charged').prop("checked", false); // Check the checkbox $('#fenix_fee_no_charged').prop("checked", true); 

使用.on()

由于元素是动态添加的,因此无法将事件直接绑定到它们。因此,您必须使用事件委派。

 $(document).on('click', '#fenix_fee_charged', function(event) { $('#fenix_fee_no_charged').removeAttr("checked"); })