2012-07-13 36 views
0

我正在使用jquery對話框。當我點擊按鈕彈出窗口是打開的,但它返回true並執行按鈕的服務器端事件。當使用jQuery對話框時點擊按鈕時總是返回true

我想要當用戶點擊是,然後返回true,否則返回false。

function btnCancelClick() 
      { 
       $("#dialog:ui-dialog").dialog("destroy"); 

       $("#dialog-confirm").dialog({ 
        resizable: false, 
        height: 140, 
        width: 400, 
        modal: true, 
        buttons: { 
         "Yes": function() 
         {      
          $(this).dialog("close"); 
            return true; 
         }, 
         No: function() 
         {      
          $(this).dialog("close"); 
           return false; 
         } 
        } 

       });    
      } 

    <asp:Button ID="btnCancel" runat="server" Text="Cancel Appointment" CssClass="cssbutton" 
            OnClientClick="return btnCancelClick();" OnClick="btnCancel_Click" /> 

回答

2

不能從對話框return

你必須使用回調函數。

$("#dialog-confirm").dialog({ 
    resizable: false, 
    height: 140, 
    width: 400, 
    modal: true, 
    buttons: { 
     Yes: function() { 
      $(this).dialog("close"); 
      clickedYes(); //YES CALLBACK 
     }, 
     No: function() { 
      $(this).dialog("close"); 
      clickedNo(); //NO CALLBACK 
     } 
    } 
}); 
+0

clickedYes(); clickedNo();沒有在javascript中定義完全定義 – John 2012-07-13 13:21:10

+0

@John oy ...定義它們! – Neal 2012-07-13 13:21:47

+0

我應該寫返回true和返回false分別爲這兩種方法或什麼? – John 2012-07-13 13:22:43

1

將您的btnCancelClick方法更新爲始終返回false。然後在對話框的按鈕處理程序中,而不是返回true或false,在那裏做回發。

function btnCancelClick() { 
    $("#dialog:ui-dialog").dialog("destroy"); 

    $("#dialog-confirm").dialog({ 
     resizable: false, 
     height: 140, 
     width: 400, 
     modal: true, 
     buttons: { 
      "Yes": function() { 
       $(this).dialog("close"); 
       <%=ClientScript.GetPostBackEventReference(btnCancel, "")%>; 
      }, 
      No: function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
    return false; 
} 

這條線:

<%=ClientScript.GetPostBackEventReference(btnCancel, "")%>

將註冊的JavaScript調用回發到你的btnCancelClick方法。

+0

onclick這裏是一個小提琴,有一個javascript警報,其中的ASP NET回發將去:http://jsfiddle.net/GZFyz/1/ – 2012-07-13 14:41:02

+0

你添加返回false在函數的結尾它總是返回false doesnot回發 – John 2012-07-14 05:52:51

+0

當添加<%= ClientScript.GetPostBackEventReference(btnCancel,「」)% >; 生成錯誤 – John 2012-07-14 05:53:39

相關問題