簡體   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