2011-11-19 33 views
0

我在頁面上有一個asp.net按鈕控件。做點擊jQuery對話框按鈕回發

<asp:Button ID="btnFinishReceiving" runat="server" Text="Finished Receiving" Width="168px" 
            OnClick="btnFinishReceiving_Click" /> 

點擊它我打開一個對話框。

$("#<%= btnFinishReceiving.ClientID %>").click(function() { 
      $("[id*='ConfirmDialog']").dialog('open'); 

     }); 

$(document).ready(function() { 
    $("[id*='ConfirmDialog']").dialog({ 
      autoOpen: false, 
      width: 600, 
      buttons: { 
       "Yes": function() { 
        return true; 
       }, 
       "No": function() { 
        return ValidateClientInfo(); 
       } 
      } 
     }); 
    }); 

的問題是:當我點擊按鈕後,對話框來和頁面了回發。我想在用戶點擊對話框中的按鈕後回發頁面。

回答

2

您的表單的「onSubmit」函數返回false。

更新:要更加確定,event.preventDefault();也會停止當時的任何默認行爲,例如表單提交。

+0

這是行不通的 - 問題是.NET發出的JavaScript。 – Hogan

0

asp:button中的onClick函數與JavaScript onClick同時被調用。

0

@Matt是對的,你必須修改你的js函數附加到asp.net按鈕。

$("#<%= btnFinishReceiving.ClientID %>").click(function(evt) { 
    $("[id*='ConfirmDialog']").dialog('open'); 
    evt.preventDefault(); 
}); 

這應該避免立即回傳,反正我覺得這種做法不會達到您的期望:「迴歸真實;」裏面的「是」按鈕的功能不會引發由asp.Button提供的原始回發函數。

請看this answer以獲得更好的解釋(忽略它在中繼器中使用的事實,在您的情況下可以使用相同的方法)。

0

馬克 - 達:

<asp:Button ID="btnFinishReceiving" runat="server" Text="Finished Receiving" Width="168px" 
OnClick="btnFinishReceiving_Click" OnClientClick="return openDialog();" /> 

JS:

function openDialog() { 
    $("[id*='ConfirmDialog']").dialog('open'); 
    return false; 
} 
相關問題