2012-02-08 78 views
0

我在頁面上有一個表單,並且我在兩個提交按鈕上捕獲點擊動作。還有另一個提交按鈕沒有被捕獲(即,我不需要顯示該按鈕的模式)。表單提交之前jquery模式對話框

所以,我明顯的問題是,當模式第一次打開時,我需要阻止提交動作,然後當用戶實際單擊模式中的確定按鈕時,我需要強制提交。但是,因爲每個按鈕都有一個特定的名稱和值(後端腳本需要知道),所以$('#myform')。submit()方法將不起作用。

function something(msg) { 
    var $dialog = $('<div></div>').html(msg).dialog({ 
     autoOpen: false, 
     title: 'Please confirm...', 
     modal: true, 
     buttons: { 
      "OK": function() { 
       $dialog.dialog('close'); 
       //submit needs to happen here 
      }, 
      Cancel: function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
    $dialog.dialog('open'); 
    event.preventDefault(); 
    return false; 
} 

回答

1

我將包括一個隱藏字段採取提交按鈕的名稱和值點擊:

<input type="hidden" name="subName" value="" /> 

 

$("#submit_button_one").function() { 
    $("input[name='subName']").attr("name", $(this).attr("name")).val(($(this).val()); 
    something("message"); 
    return false; 
}); 
$("#submit_button_two").function() { 
    $("input[name='subName']").attr("name", $(this).attr("name")).val(($(this).val()); 
    something("message"); 
    return false; 
}); 

function something(msg, act) { 
    // ... 
    //submit needs to happen here 
    $('#myform').submit() 
} 
+0

將這項工作如果每個按鈕都有特定的提交行動? – JonoB 2012-02-08 17:45:14

+0

有什麼行動? – 2012-02-08 17:48:04

+0

您可以使用'document.myform.action =「page1.html」;' – 2012-02-08 17:51:46