繁体   English   中英

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

[英]on submit of dynamically generated form, find which submit button was clicked

我有多种形式,这些形式是由模板引擎在运行时动态生成的,为了在提交时生成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;
});

在康纳斯建议使用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()
});

当然,如果我的表单具有输入字段,这将无法很好地工作,因为它不会在通过Enter键提交表单时被触发。 另外,您仍然需要将输入标识信息附加到ajax请求中。

我通过添加

 data: {submit:input.value},

到ajaxSubmit设置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM