可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I have multiple forms on a page, for each of them I want the user to confirm before form submission. but when the user confirms to submit, how do I let this dialog know which form the user is sumbitting? Does it take custom parameters? Thanks.
$("#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'); });
回答1:
You can store it in a variable like this:
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; });
Since you're just using this and immediately just leaving the page, no real reason to make it any more complicated than that.
回答2:
Or how about
$(this.form).submit();
回答3:
Based on Nick Craver his answer, you can write it this way:
$('.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; });