2011-05-05 39 views
1

我如何獲得確認框中按下的值?獲取asp.net中的返回確認popbox值C#

<script type = "text/javascript" language = "javascript"> 
     function confirm_proceed() 
     { 
      if (confirm("Are you sure you want to proceed?")==true) 
       return true; 
      else 
       return false; 
     } 
    </script> 

C#

Button2.Attributes.Add("onclick", "return confirm_proceed();"); 
+0

我不確定問題是什麼。 'confirm()'返回布爾值,所以你想從函數中返回「Ok」或「Cancel」? – 2011-05-05 02:47:11

+0

是的,所以我想在這裏是當用戶點擊按鈕2確認框將彈出,然後如果用戶按下確定它會做按鈕上的代碼,否則它會忽略。 – Rye 2011-05-05 02:50:32

+0

您擁有的代碼應該適用於該代碼。有什麼問題? – 2011-05-05 02:52:21

回答

1

試試這個,如果這是一個具有這種行爲

Button2.Attributes.Add("onclick", "return confirm('Are you sure you want to proceed?')"); 

它內聯,看起來簡單,但如果你有這樣的行爲,多個控件,然後你原來的方法是易維護的唯一按鈕。

而原始功能可以皺縮到

<script type = "text/javascript" language = "javascript"> 
     function confirm_proceed() 
     { 
      return confirm("Are you sure you want to proceed?"); 
     } 
</script> 
1

可以的confirm_proceed()值存儲在一個asp:HiddenField

如下您可以修改你的腳本:

<script type = "text/javascript" language = "javascript"> 
     function confirm_proceed() 
     { 
      var hiddenField = document.getElementById('hiddenFieldId'); 

      if (confirm("Are you sure you want to proceed?")==true) 
      { 
       hiddenField.value = 'true'; 
       return true; 
      } 
      else 
      { 
       hiddenField.value = 'false'; 
       return false; 
      } 
     } 
</script> 

您現在可以訪問第一您的Button2_Click事件中的隱藏字段值。

1

我只是面臨着類似的問題,在實際的生產項目,我用以下解決它:

<asp:Button ID="btn1" runat="server" OnClick="Button1_Click" onClientClick="return confirm('Are you sure you want to proceed?')"/> 

這樣的OnClientClick客戶端事件因爲onClick是一個服務器事件,所以如果用戶點擊OK,則Client事件從確認對話框返回True,因此執行此按鈕後面的代碼,另一方面,如果用戶單擊(Cancel或No),則它會返回錯誤,因此e後面的代碼不會被修改(服務器事件被取消)

希望它能幫助你,因爲我真的將它應用到我的項目中,並且沒有任何問題。