2013-03-16 40 views
0

我正在使用以下代碼顯示確認框。確認框中是和否選項,在下拉列表中選擇的索引更改

protected void cmbPayerBucketMain_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    ClientScriptManager CSM = Page.ClientScript; 
    if (!String.IsNullOrEmpty(hiddenF1.Value) || !String.IsNullOrEmpty(hiddenF2.Value)) 
    { 
      CSM.RegisterClientScriptBlock(this.GetType(), "Confirm", "show();", true); 
    } 

    //Some Code  
} 

和功能顯示()如下

function show() 
     (
      if(confirm('Chnages you made will be lost. Do you want to continue?')) 
      { return true; } 
      else 
      { return false; 
       } 

       return 

     ) 

但無論我從確認對話框選擇了什麼選項,它正在執行整個代碼。在執行整個事件代碼後,它彈出msg框。如何限制組合框等待確認框的響應,並且只有在用戶選擇「確定」(或「是」)時,我才能更改確認框中的按鈕文本的方式來執行事件代碼。將此確定爲是,將取消設爲否)。

回答

3

您無法在確認對話框中更改按鈕的文本。它們內置於瀏覽器中。

如果你想在對話框的更多控制使用Dialog從jQuery UI的,但它不會讓你阻塞輸入UI線程,即你不能這樣做的confirm(...)簡單的事和得到的結果下一行。我建議你閱讀一些關於如何處理用戶與對話交互結果的文檔。具體來說,請參閱文檔this example。我會盡力適應這裏的一些簡單的例子:

<script> 
$(function() { 
    $("#dialog-confirm").dialog({ 
    resizable: false, 
    height:140, 
    modal: true, 
    buttons: { 
     "Yes": function() { 
     // whatever you want to run when user clicks 'yes'. 
     ... 
     $(this).dialog("close"); 
     }, 
     "No": function() { 
     $(this).dialog("close"); 
     } 
    } 
    }); 
}); 
</script> 
<div id="dialog-confirm"> 
    ... 
</div> 

只是一個小點......如果你選擇堅持使用內置確認對話框,您可以簡化代碼

function show() { 
    return confirm('Chnages you made will be lost. Do you want to continue?'); 
} 
+0

u能表明我與jQuery做一些代碼? – Pramod 2013-03-16 07:13:31

+0

@Pramod請看我的更新 – 2013-03-16 07:20:18

2

它執行此函數中的所有代碼,因爲它不是函數。您正在使用parens ()而不是花括號{}。另外方法p.s.w.g.建議爲回報值更好。

function show() { 
    return confirm('Changes you made will be lost. Do you want to continue?'); 
} // use curly braces, not parens here 
+0

+1好眼。我沒有注意到這一點。 – 2013-03-16 07:23:51

+0

如果我正在註冊腳本。我怎樣才能收到確認框的價值(天氣點擊確定或取消)@ThinkingStiff – Pramod 2013-03-16 07:49:50

+0

@Pramod選中此:http://stackoverflow.com/questions/6134351/executing-javascript-function-in-code-behind-how-對獲得最返回值,在-C – ThinkingStiff 2013-03-16 08:51:36

0

請嘗試下面的代碼確認框定製。

<script src="../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> 
    <script src="../Scripts/jquery.confirm.js" type="text/javascript"></script> 
    <script type="text/javascript"> 

      function ShowConfirm(Title, Message, OkBtnCaption, CancelBtnCaption, ButtonID) { 
       var elem = $(this).closest('.item');    

       $.confirm({ 
        'title': Title, 
        'message': Message, 
        'buttons': { 
         OkBtnCaption: { 
          'class': 'blue', 
          'action': function() { $('#' + ButtonID).click(); }, 
          'id': 'okBtn' 
         }, 
         CancelBtnCaption: { 
          'class': 'gray', 
          'action': function() { }, 
          'id': 'cancelBtn' 
         } 
        } 
       }); 
       return false; 
      } 
     </script> 

希望它有幫助。

感謝, 西瓦