只需单击复选框即可提交表单

时间:2016-11-28 06:52:51

标签: javascript jquery ruby-on-rails ruby

我试图在我的视图中创建一个复选框的提交(它是一个属性的切换),只需单击复选框本身,而无需使用提交按钮。

这就是我的文字框/提交内容:

<%= 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或其他一些方法并保留复选框。

谢谢!

2 个答案:

答案 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();
  }
});

您可能需要检查是否正在选中复选框开启关闭