チェックボックスを表示するレールビューがあります。チェックボックスをクリックすると、コントローラーで 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
チェックボックスを初めてクリックすると、すべてが正しく機能し、関数が呼び出され、checked 属性が変更されます。問題は次のとおりです。チェックボックスをもう一度クリックしても、属性は変更されません (ただし、視覚的にチェックボックスは変更されます...)。そのため、関数「test_checkbox」は呼び出されません。
どうすればこの問題を解決できますか?