2017-02-07 8 views
2

C#から条件付き確認ボックスを呼び出す方法。c#の条件付き確認ボックス

私は2つの隠しフィールドがあり、条件に基づいて私は確認ボックスを呼び出したいと思っています。

その後、ユーザーが押した内容(はいまたはいいえをクリックしたもの)も必要です。

デザイン: -

<input type="submit" id="btnAddPaymentMethod" onserverclick="AddPaymentMethod_Click" runat="server" value="add payment method" /> 

コード: - 私はjQueryのコードの下に試してみました

protected void Next_Click(object sender, EventArgs e) 
    { 
      if (hdnDefault.Value == hdnPrimary.Value) { return; } 
      else 
      { 
      //open confirm box 
      ScriptManager.RegisterStartupScript(Page, Page.GetType(), "confirm", "confirm('Do you want to save new default payment method?');", true); 
        string confirmValue = Request.Form["confirm_value"]; 
        if (confirmValue == "Yes") 
        { 
         this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('You clicked YES!')", true); 
        } 
        else 
        { 
         this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('You clicked NO!')", true); 
        } 
      } 
    } 

: -

function Confirm(msg) { 
      var confirm_value = document.createElement("INPUT"); 
      confirm_value.type = "hidden"; 
      confirm_value.name = "confirm_value"; 
      if (confirm(msg)) { 
       confirm_value.value = "Yes"; 
       $('#btnAddPaymentMethod').click(); 
      } else { 
       confirm_value.value = "No"; 
      } 
      document.forms[0].appendChild(confirm_value); 
     } 
+1

javascript/jqueryに条件を入れないと、サーバーサイドコードの代わりにすぐに確認を呼び出すことができます。 – Adil

+0

このリンクを試す@Sunny Singh http://www.aspsnippets.com/Articles/ASPNet-Server-Side-Yes-No-Confirmation-Box-using-JavaScript.aspx – jose

+0

私はその記事を@joseで見ましたが、いつも 'あなたはNOをクリックしました!'と表示される確認ボックスは表示されません。 –

答えて

1
protected void Next_Click(object sender, EventArgs e) 
{ 
    if (hdnDefault.Value == hdnPrimary.Value) { 
    return; 
    } else { 
    //open confirm box 
    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "confirm", "Confirm('Do you want to save new default payment method?');", true); 
    } 
} 

protected void AddPaymentMethod_Click(object sender, EventArgs e) 
{ 
    string confirmValue = Request.Form["confirm_value"]; 
    if (confirmValue == "Yes") { 
    ScriptManager.RegisterStartupScript(this.GetType(), "alert", "alert('You clicked YES!')", true); 
    } else { 
    ScriptManager.RegisterStartupScript(this.GetType(), "alert", "alert('You clicked NO!')", true); 
    } 
} 

function Confirm(msg) { 
    var confirm_value = document.createElement("INPUT"); 
    confirm_value.type = "hidden"; 
    confirm_value.name = "confirm_value"; 
    confirm_value.value = confirm(msg)? "Yes" : "No"; 
    document.forms[0].appendChild(confirm_value); 
    $('#btnAddPaymentMethod').click(); 
} 
0

私はあなたのコードを実行していません。しかし、あなたが入力コントロールのためにrunat="server"を持っているとき、それはasp.net一意のIDで追加します。だから、入力コントロールには、btnAddPaymentMethodで終わる名前で次のようにアクセスしてみてください。 $('[id$=btnAddPaymentMethod]').click();

0

このjQueryのコードへ$('#btnAddPaymentMethod').click();から

変更は、[キャンセル]、[OK]ボタンで、確認ダイアログを開きます。

ここで、myConfirmPageLinkというIDを持つアンカータグをクリックすると、確認が求められます。 OKをクリックするとターゲットに進み、キャンセルをクリックすると同じページにとどまります。

$("a#myConfirmPageLink").click(function(){ 
    return confirm("Are you sure you want to go to that page/site ?"); 
}); 

これは、目的に合わせて簡単に変更する必要があります。

関連する問題