元素变化时提交表单
在jQuery中,如果我将class=auto_submit_form
分配给表单,则只要更改了任何元素,就会提交它,并使用以下代码:
/* automatically submit if any element in the form changes */ $(function() { $(".auto_submit_form").change(function() { this.submit(); }); });
但是,如果我希望表单仅在指定元素更改时提交:
/* submit if elements of class=auto_submit_item in the form changes */ $(function() { $(".auto_submit_item").change(function() { $(this).parents().filter("form").submit(); }); });
我只是在学习jQuery。 有一个更好的方法吗?
/* submit if elements of class=auto_submit_item in the form changes */ $(function() { $(".auto_submit_item").change(function() { $("form").submit(); }); });
假设您在页面上只有一个表单。 如果没有,你需要使用$(this).parents("form").submit()
来选择当前元素的祖先$(this).parents("form").submit()
您可以使用parents()
方法中的表达式来过滤父项。 因此,这可能会更有效:
/* submit if elements of class=auto_submit_item in the form changes */ $(".auto_submit_item").change(function() { $(this).parents("form").submit(); });
我会给表单一个id:
$(".auto-submit-item").change(function() { $("form#auto-submit").submit(); });
我想出了一个通用的方法:
$('.autoSubmit, .autoSubmit select, .autoSubmit input, .autoSubmit textarea').change(function () { const el = $(this); let form; if (el.is('form')) { form = el; } else { form = el.closest('form'); } form.submit(); });
表格的所有元素:
只有个别元素