选择使用 jQuery 接收 change() 事件的表单的提交按钮

Select a submit button of a form that received a change() event with jQuery

本文关键字:事件 表单 提交 按钮 jQuery 接收 change 选择      更新时间:2023-09-26

我需要构建一个jQuery脚本,该脚本将选择一个button,其中包含接收change()事件的表单type=submit

这是我想出的代码:

var categoryEditForms = $('form.category-edit-block');
categoryEditForms.change(function(form) {
    var submitButton = $(form).find('button[type=submit]');
});

运行此代码后,categoryEditForms包含页面上存在的 4 个表单。 submitButton 是一个 length 等于 0 的 JS 对象。我只会补充一点,提交按钮存在于页面上的每个表单中。

我应该如何修改我的代码以抓取所需的提交按钮?

change事件中的form变量是事件本身,而不是形式。使用 this 检索父窗体:

var categoryEditForms = $('form.category-edit-block');
categoryEditForms.change(function() {
    var submitButton = $(this).parents("form").find('button[type=submit]');
});

更好的主意是委派您的事件,这样您只有一个event,例如:

categoryEditForms.on("change", function() {
    var submitButton = $(this).parents("form").find('button[type=submit]');
});

你必须遍历 DOM 才能找到提交按钮:

var categoryEditForms = $('form.category-edit-block');
categoryEditForms.change(function() {
    var submitButton = $(this).parents('form').eq(0).find('button[type=submit]');
});