2014-11-21 38 views
0

我有一個ASP.NET Web窗體應用程序。我試圖在用戶點擊提交按鈕時顯示模態對話框以供確認。我正在使用按鈕的OnClientClick來調用JavaScript函數。如果頁面驗證成功,該功能將打開模式對話框。當用戶點擊模式對話框的是按鈕時,我想要提交表單。我試過_doPostback(btn,'OnClick'),btn.trigger('click')和btn.click()。我可以看到模式對話框和取消按鈕。但是當我點擊是時,頁面沒有發佈。請參閱下面的代碼並幫助我。謝謝!通過調用ASP.NET按鈕從jQuery模態對話框中回發點擊

ASPX:

<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" 
    OnClientClick="clientValidate();return false;"/> 

<div id="alert" style="display: none"> 
    Are you sure you want to submit? 
</div> 

的JavaScript:

$(document).ready(function() { 
     $('#alert').dialog({ 
      title: 'Confirm', 
      modal: true, 
      autoOpen: false, 
      buttons: { 
       Yes: function() { 
        var btn = document.getElementById('<%=btnSubmit.ClientID%>'); 
        //_doPostback(btn, 'OnClick'); 
        //btn.trigger('click'); 
        //btn.click(); 
        // Above three didn't work! :(
       }, 
       Cancel: function() { 
        $(this).dialog('close'); 
       } 
      } 
     });    
    }); 

function clientValidate() { 
     var btnsubmit = document.getElementById(<%=btnSubmit.ClientID%>); 
     if (Page_ClientValidate()) {         
      $('#alert').dialog('open'); 
     } 
    } 

UPDATE:

更正_doPostBack()__doPostBack()。現在頁面發佈。但是btnSubmit_Click沒有被調用。

回答

0

您的doPostBack調用是錯誤的。它應該是__doPostBack()不是_doPostBack() - 應該有兩個下劃線,你有一個。這可能是爲什麼它沒有開始。

試試這個:

buttons: { 
      Yes: function() { 
       var btn = document.getElementById('<%=btnSubmit.ClientID%>'); 
       __doPostback(btn, 'OnClick'); 
      }, 

UPDATE


試試這個:

在後面的代碼在你的頁面加載函數中添加此

if (Page.IsPostBack) 
{ 
    var param = Request["__EVENTARGUMENT"]; 
    if (target == "Submit") 
     btnSubmit_Click(sender, e); 
} 

在你Javascript你唔ld做

__doPostBack(btn, 'Submit'); 

這應該這樣做。

+0

糟糕。我現在糾正了。謝謝!頁面正在發佈,但btnSubmit_Click沒有被調用。我怎樣才能做到這一點? – 2014-11-21 23:38:39

+0

@ Code.me我已更新該帖子,包括如何使用__doPostBack調用您的btnSubmit_Click事件。 – Gjohn 2014-11-22 03:39:04

相關問題