我有一個使用Rails構建的應用程序/任務列表類型。表單提交jQuery的單擊事件只選擇第一種形式
我有一個類別列表,其各自的任務低於類別的名稱。
我在每個任務旁邊都有一個複選框,當我單擊它時,我希望該特定任務的表單提交併更新任務以完成/未完成。我有一個jQuery函數來做到這一點:
$(function(){
$('input:checkbox').on('click', function(){
$(this).parents('form').submit();
});
});
我的形式看起來像這樣(在HAML):
- form_class = task.complete? ? "edit_task complete" : "edit_task"
= form_for task, remote: true, html: {:class => form_class } do |f|
= f.check_box :complete
= f.label :complete, task.name
= link_to task_path(task.id), remote: true, method: :delete, class: "delete-task" do
%i.icon-remove.pull-right
輸出HTML是這樣的:
<form accept-charset="UTF-8" action="/tasks/338" class="edit_task" data-remote="true" id="edit_task_338" method="post">
<div style="margin:0;padding:0;display:inline">
<input name="utf8" type="hidden" value="✓">
<input name="_method" type="hidden" value="put">
<input name="authenticity_token" type="hidden" value="q7bvSGPr1IDf1p2/SKsssbdiQj+NBWmg/C6zPB3x+jM=">
</div>
<input name="task[complete]" type="hidden" value="0">
<input checked="checked" id="task_complete" name="task[complete]" type="checkbox" value="1">
<label class="338" for="task_complete" id="task-label">another task</label>
<a href="/tasks/338" class="delete-task" data-method="delete" data-remote="true" rel="nofollow">
<i class="icon-remove pull-right"></i></a>
</form>
的問題是,當我單擊ANY複選框時,不是找到特定任務的表單,而只是選擇並切換頁面上的第一個任務。
任何幫助將不勝感激。
感謝
您的表格是否嵌套?另外,請嘗試'.closest'而不是'.parents'。 – Blender 2013-03-09 22:15:54