Javascript 在提交动态生成的表单时,查找单击了哪个提交按钮

Javascript 在提交动态生成的表单时,查找单击了哪个提交按钮,javascript,jquery,ajax,javascript-events,Javascript,Jquery,Ajax,Javascript Events,我有多个表单,它们在运行时由模板引擎动态生成,为了在提交时生成ajax请求,我使用了“on”方法来委托事件 $("#friendRequestsList").on("submit", "[id^=friendReqResponse-form]", function(){ var form = this; $(form).ajaxSubmit({ url:'URL', type:'post', dataType: 'json',

我有多个表单,它们在运行时由模板引擎动态生成,为了在提交时生成ajax请求,我使用了“on”方法来委托事件

$("#friendRequestsList").on("submit", "[id^=friendReqResponse-form]", function(){
    var form = this;
    $(form).ajaxSubmit({
        url:'URL',
        type:'post',
        dataType: 'json',
        success: function(data) {
            DO SOMETHING
        }

    });
    return false;
});

表单有2个提交按钮,我需要检测其中哪个按钮被点击,并将此信息传递给ajax请求。但是,我很难知道表单中的哪些提交输入被单击,因为它们也是动态生成的。想法?

我希望它能帮助你:

$("#friendRequestsList").on("submit", "[id^=friendReqResponse-form]", function(){
     var submit1 = $(this).attr('value');

     var formData = new FormData();
     formData.append('submit1', submit1);

     $.ajax({
        url:'URL',
        type:'post',
        data:formData,
        dataType: 'json',
        success: function(data) {
            DO SOMETHING
        }

    });
    return false;
});

根据Connors关于使用click事件而不是submit的建议,我成功地获得了submit按钮,如下所示:

 $("#friendRequestsList").on("click", "[id^=submit1], [id^=submit2]", function(e) {
    var input = this;
    var form = $(input).parent();

    $(form).ajaxSubmit({
        url:'URL',
        type:'post',
        dataType: 'json',
        success: function(data) {
            DO SOMETHING
        }

    });
    e.preventDefault()
});
当然,如果我的表单有输入字段,这将无法很好地工作,因为它不会在通过键盘输入提交表单时触发。此外,还需要将输入标识信息附加到ajax请求中

我通过添加

 data: {submit:input.value},

对于ajaxSubmit设置

我认为,如果您为提交按钮(至少是
输入
而不是
按钮
种类)分配了一个值,则该值应与表单的其余数据一起传递。但是,如果您无法调整正在使用的表单按钮,我不确定这会有多大帮助。不,它们都是“输入”,具有提交类型和不同的值,但只有表单的输入字段作为表单数据传递-如果该值与其他表单数据一起传递,那么这也可以解决我的问题。抱歉,我一定弄错了。在这种情况下,如果可能的话,我建议将click事件处理程序绑定到按钮,而不是将submit事件处理程序绑定到表单。如果没有,可能会将单击事件绑定到整个表单,访问单击的元素,然后根据单击的内容提交?可能重复感谢您的回答,但我认为这不会起作用。submit1将被分配一个未定义的值,该值不表示单击了submit按钮