2016-11-28 133 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