gpt4 book ai didi

jquery - jQuery 单击事件上的表单提交仅选择第一个表单

转载 作者:行者123 更新时间:2023-12-01 08:08:13 24 4
gpt4 key购买 nike

我有一个使用 Rails 构建的待办事项/任务列表类型的应用程序。

我有一个类别列表,其各自的任务位于类别名称下方。

每个任务旁边都有一个复选框,当我单击它时,我希望提交该特定任务的表单并将任务更新为完整/不完整。我有一个 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>

问题是,当我单击任何复选框时,它不会找到该特定任务的表单,而是只会选择并切换页面上的第一个任务。

任何帮助将不胜感激。

谢谢

最佳答案

正如 Blender 建议的那样,尝试使用 closest 而不是 parents

$('input:checkbox').click(function(e){
$(this).closest('form').submit();
});

关于jquery - jQuery 单击事件上的表单提交仅选择第一个表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15316515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com