2010-03-10 58 views
9

我在頁面上有多個表單,對於他們每個我都希望用戶在表單提交之前進行確認。但是當用戶確認提交時,如何讓此對話框知道用戶正在裝入哪個表單?它是否需要自定義參數?謝謝。使用jQuery UI對話框來確認表單提交的動作

$("#dialog-confirm").dialog({ 
     resizable: false, 
     height:140, 
     modal: true, 
     buttons: { 
      'Confirm submit': function() { 
       document.______???????_____.submit(); 
      }, 
      Cancel: function() { 
       $(this).dialog('close'); 
      } 
     } 
    }); 
$('.allForms').submit(function(){ 
     $('#dialog-confirm').dialog('open'); 
}); 

回答

17

您可以將其存儲在像這樣的變量:

var currentForm; 
$("#dialog-confirm").dialog({ 
     resizable: false, 
     height:140, 
     modal: true, 
     buttons: { 
      'Confirm submit': function() { 
       currentForm.submit(); 
      }, 
      Cancel: function() { 
       $(this).dialog('close'); 
      } 
     } 
    }); 
$('.allForms').submit(function(){ 
     currentForm = this; 
     $('#dialog-confirm').dialog('open'); 
     return false; 
}); 

因爲你只是用這個,而是立即離開頁面,沒有真正的理由,使其比這更復雜。

+0

感謝。但現在我點擊'確認提交'後,它只是調用$('。allForms')。submit(function())並沒有實際提交。或者這是一個不同的問題? – redbluegreen 2010-03-10 22:13:17

+3

@redbluegreen - Woops,更新了答案...'currentForm = this;'不應該包含在$()中' – 2010-03-10 22:39:49

1

還是怎麼尼克Craver約

$(this.form).submit(); 
0

基於他的答案,你可以寫這樣說:

$('.allForms').submit(function(){ 
     currentForm = this; 

     $('#dialog-confirm').dialog({ 
     resizable: false, 
     height:140, 
     modal: true, 
     buttons: { 
      'Confirm submit': function() { 
       currentForm.submit(); 
      }, 
      Cancel: function() { 
       $(this).dialog('close'); 
      } 
     } 
     }); 
     return false; 
});