复选框的checked属性的修改不会;工作不正常

The modification of the checked attribute of a checkbox doesn't work correctly

本文关键字:工作 不正常 修改 checked 属性 复选框      更新时间:2024-04-19

我有一个显示复选框的rails视图。当我点击复选框时,我的控制器中会调用一个rjs函数,它会根据复选框以前的状态来选中或取消选中该复选框。

视图中:

<%= check_box_tag 'checkbox_test' %>
<%= observe_field 'checkbox_test',
  :url => { :action => :test_checkbox }
%>

在控制器中:

def test_checkbox
  render :update do |page|
    page << "
      var checkBox = $('checkbox_test');
      checkBox.checked = !checkBox.checked;
    "
  end
end

第一次单击复选框时,一切正常,调用函数,并更改选中的属性。问题出现后:如果我再次单击复选框,属性不会改变(但从视觉上看,复选框会改变…),因此不会调用函数"test_checkbox"。

我该如何解决这个问题?

根本不要使用该属性。只需使用checked属性。这对几乎所有的属性和情况都是很好的建议。

var checkBox = $('checkbox_test');
checkBox.checked = !checkBox.checked;

在我看来,你需要$('checkbox_test')[0]。checked来测试检查性。

checked属性是本机DOM,而不是jQuery的一部分。