【问题标题】:submit form by only clicking checkbox仅通过单击复选框提交表单
【发布时间】:2017-04-11 20:08:13
【问题描述】:

我试图通过仅单击复选框本身而无需使用提交按钮来在我的视图上创建复选框的提交(它是属性的切换)。

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

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

谢谢!

【问题讨论】:

  • change事件与checkboxes绑定并在事件处理程序中提交form
  • 我将此添加到我的 update.js.erb 文件中,但没有收到响应。

标签: javascript jquery ruby-on-rails ruby


【解决方案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 %>

【讨论】:

    【解决方案2】:

    很简单,请参阅此脚本以获取帮助:

    $(".check_box").change(function(){
      if($(this).prop('checked') == true){
        $("form").submit();
      }
    });
    

    您可能需要检查复选框是选中ON还是OFF

    【讨论】:

    • 我将如何确定复选框是被选中还是关闭?
    • @snovosel,你可以使用this.checked
    • 我已经更新了我的答案。请参阅此内容以供参考stackoverflow.com/questions/901712/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 2021-09-22
    • 2013-02-12
    相关资源
    最近更新 更多