我试图在我的视图中创建一个复选框的提交(它是一个属性的切换),只需单击复选框本身,而无需使用提交按钮。
这就是我的文字框/提交内容:
<%= form_for @task, remote: true do |task| %>
<%= task.check_box :complete, class: "check_box" %>
<%= task.submit %>
<% end %>
当我只点击该框时,我想触发此方法:
def update
@task = Task.find(params[:id])
@task.toggle :complete
@task.save
respond_to do |format|
format.html
format.js
end
end
我想知道你是否有人认为用div创建一个link_to会更容易解决这个问题,否则我想使用jquery或其他一些方法并保留复选框。
谢谢!
答案 0 :(得分:1)
要在选中复选框后提交表单,您只需添加 onchange: "this.form.submit();"
,它就会提交表单并加载下一个操作。
<%= form_for @task, remote: true do |task| %>
<%= task.check_box :complete, class: "check_box", onchange: "this.form.submit();" %>
Yup I am done!
<% end %>
答案 1 :(得分:0)
简单,请参阅此脚本以获取帮助:
$(".check_box").change(function(){
if($(this).prop('checked') == true){
$("form").submit();
}
});
您可能需要检查是否正在选中复选框开启或关闭。