2011-12-15 6 views
-1

総額がゼロであれば、私はその後、javascriptのメッセージの確認は、ユーザーを押すも、キャンセルした場合、ユーザーはゼロ量を節約し、継続すべきかどうかをユーザーに尋ね、「総額」JavaScriptのクエリ

という名前のフィールドを持っていますサーバー側の保存ボタンはアクティブではなく、総額のパネルに戻る必要があります。

私はクライアント側で次のコードを使用しました。

function show_confirm() { 

    // var txttemp = document.getElementById("<%=txtSAmt.ClientID %>").value; 
    var menu = $find("<%= this.txtSAmt.ClientID %>"); 
    var check; 
    if (menu != null) { 
     check = menu.get_value(); 
    } 
    if (check == '0') { 
     var r = window.confirm("Gross Settlement Amount is 0.Press Cancel to Change, Press OK to save anyway"); 
     if (r == 'false') { 

     } 

    } 

} 

クライアントがキャンセルをクリックすると、サーバー側のbtnSaveが起動しないようにしてください。

+5

あなたの質問を明確にしてください。 – Mathletics

+0

私はr == falseに含めるべきことを知りたいので、私のサーバーのサイドボタンイベントが発射されないようにします – Bebu

+1

このasp.netは? MVC asp.net?サーブレット? – Ivan

答えて

1

これは、btnSaveのonclickイベントのイベントハンドラであると仮定します。

まず、r意志決してconfirm()はブール値ではなく、文字列を返す等しい"false"ので。 rfalse(引用符なし)を比較する必要があります。実際にはrと何も比較する必要はありません。rは既にブール値です。したがってr == false!rと同じです。

e.preventDefault()を使用できます。あなたの関数定義にeパラメータを追加する必要があります:

function show_confirm (e) { 
    e = e || window.event; 
    ... 
    if (check == '0') { 
     var r = window.confirm("..."); 
     if (!r) { 
      if (e.preventDefault) { 
       e.preventDefault(); 
      } 
      e.returnValue = false; 
     } 
    } 
} 

あなたはこのようなshow_confirm()を呼び出す場合:

<asp:button ... OnClientClick="show_confirm()" /> 

あなたはeventオブジェクトを渡すためにそれを変更する必要があります

<asp:button ... OnClientClick="show_confirm(event)" /> 

また、イベントハンドラからfalseを返すこともできます。あなたはこれにあなたの機能を変更することができます

<asp:button ... OnClientClick="return show_confirm()" /> 

:あなたは、上記のようにshow_confirm()を呼び出している場合は、もう一度、あなたはそれを変更する必要があります

function show_confirm() { 
    var menu = $find("<%= this.txtSAmt.ClientID %>"); 
    var check; 
    if (menu != null) { 
     check = menu.get_value(); 
    } 
    return check != "0" || !confirm("Gross Settlement Amount is 0. Press Cancel to Change, Press OK to save anyway."); 
}   
0

show_confirm()は、フォームのsubmitイベントのために実行されている場合:

変更:

あなたが find()機能を必要としないIDによって要素を選択することも

var r = window.confirm("Gross Settlement Amount is 0.Press Cancel to Change, Press OK to save anyway"); 
    return r;//if they confirm this will return true and if they cancel then this will return false and the form won't submit 

var menu = $find("<%= this.txtSAmt.ClientID %>"); 

To:

var menu = $("<%= this.txtSAmt.ClientID %>");//this is assuming that `this.txtSAmt.ClientID` starts with a hash (#) 

そして、あなたはjQueryので.val()機能をmenu要素の値を取得することができます:

クライアントは、彼らがクリックした場合にだけ、if文どこで回答を包む、前方に移動する前に、これを確認しなければならないと仮定すると、
var menu = $("<%= this.txtSAmt.ClientID %>"), 
    check = menu.val(); 
+0

Javascriptコードを使用すると、ページに何も変更せずにメッセージボックスを閉じることができます。 ????? – Bebu

0

それをキャンセルすると、falseを返します。つまり、okを返すとtrueを返し、ポストを続行してサーバーサイドのアクションをトリガーする場合、レスポンスelseで前方に移動しません。

0

if (!r) { return false; }あなたが提供した情報はほとんどありません。