2016-11-28 64 views
0

我想在我的视图上创建一个复选框(它是一个属性的切换),只需单击复选框本身,而无需使用提交按钮。仅通过点击复选框提交表格

这是我为我的文本框/提交:

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

谢谢!

+1

用'checkbox'es绑定'change'事件并在事件处理程序中提交'form'。 – Satpal

+0

我将此添加到我的update.js.erb文件中,但没有得到回复。 – snovosel

回答

0

其简单,看到这个剧本的帮助:

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

您可能要检查复选框正在检查ONOFF

+0

如何查找复选框是否被选中ON或OFF? – snovosel

+0

@snovosel,你可以使用'this.checked' – Satpal

+0

我已经更新了我的答案。看到这个参考http://stackoverflow.com/questions/901712/how-do-i-check-if-a-checkbox-is-checked-in-jquery?rq=1 – titan

相关问题