2017-06-20 8 views
1

私のページにはボタンがあります。そのボタンのクリックイベントは、条件が一致した場合に特定のコードを実行し、続行するかどうかの確認を求めます。私は以下のように確認のためのjavascript関数を持っています。サーバーサイドから確認ダイアログを呼び出す方法

<script type="text/javascript"> 

      function getConfirmation(){ 
       var retVal = confirm("Do you want to continue ?"); 
       if(retVal == true){ 

        return true; 
       } 
       else{ 

        return false; 
       } 
      } 

     </script> 
<asp:Button runat="server" ID="lnkBtn" onClick="lnkBtn_Click" onClientClick="getConfirmation()"></button> 

コードが背後にある次のようになります。ボタンは、条件が満たされない場合でも、クリックされたときに、

void lnkBtn_Click(Object sender, EventArgs e) 
    { 
     if (txtMyText.Text!="") 
     { 
     ///need confirmation here whether to continue. 
     } 
     else 
     { 
     //continue with normal code.  
     } 
    } 

が今の問題は()発射されることを確認しています。条件が満たされた場合にのみconfirm()を発生させたい。私はこれを手伝ってください。

ありがとうございます。

私は両方のソリューションを試しましたが、どこかでミスを犯しているようです。私は以下の完全なコードを添付しています。私が間違っている箇所や解決方法を見つけ出すのを助けてください。背後に

<script type="text/javascript"> 
     function Confirm() { 
      var confirm_value = document.createElement("INPUT"); 
      confirm_value.type = "hidden"; 
      confirm_value.name = "confirm_value"; 
      if (confirm("This will completely delete the project. Are you sure?")) { 
       confirm_value.value = "Yes"; 
      } 
      else { 
       confirm_value.value = "No"; 
      } 
      document.forms[0].appendChild(confirm_value); 
     } 
    </script> 

<asp:Button runat="server" ID="lnkBtn" onClick="lnkBtn_Click" onClientClick="getConfirmation()"></button> 

コード:

protected void ibExport_Click(object sender, ImageClickEventArgs e) 
     { 
      string str=gdView.HeaderRow.Cells[8].Text; 
      System.Web.UI.WebControls.TextBox txtID = (System.Web.UI.WebControls.TextBox)gdView.Rows[0].Cells[8].FindControl(str); 
      if (txtID.Text != "") 
      { 
       string confirmValue = Request.Form["confirm_value"]; 
       if (confirmValue == "Yes") 
       { 
        MyAlert("Yes clicked"); 
       } 
       else 
       { 
        MyAlert("No clicked"); 
       } 
      } 
      else 
      { 
       MyAlert("No Text found."); 
      } 
     } 

ibExportはtxtID.Textをクリックすると=」」、何の確認ダイアログボックスが表示されません!。代わりに、「クリックしない」アラートが直接ポップアップします。

答えて

1

非常に近いですが、return文をインラインクリックハンドラで使用してください。

onClientClick="return getConfirmation()" 

代わりの

onClientClick="getConfirmation()" 

また、getConfirmation機能でifブロックは

function getConfirmation() { 
    return confirm("Do you want to continue ?"); 
} 
-1

があなたのJavascriptを外し冗長です。バックエンドでボタンクリックイベントのためにこの関数を使用してください。

void lnkBtn_Click(Object sender, EventArgs e) 
    { 
     if (txtMyText.Text!="") 
     { 
      Response.Write("<script> function getConfirmation()" 
      +" { var retVal = confirm('Do you want to continue ?');" 
      +" if(retVal == true)" 
      +" { return true; } else{ return false;} }" 
      +" </script>"); 
     } 
     else 
     { 
     //continue with normal code.  
     } 
    } 
+0

これはウェブの仕組みではありません。 – mason

関連する問題