0

私はasp.netボタンを持っています:

 <asp:Button ID="MainContent_ibSave" runat="server" Text="Save" />
                </td>

runat=serverクリックしたときにいくつかのコードビハインドを処理する必要があるため、を保持する必要があります。しかし、jqueryにはこれがあります:

 $("#MainContent_ibSave").click(function () {
            if ($('#MainContent_txtShipToName').val().length == 0) {
                $('#hErrorsExist').val("1");
                $('#error').show();
            }
            else {
                $('#hErrorsExist').val("0");
                $('#error').hide();
            }

基本的に、ここで行っていることは、#MainContent_txtShipToName にテキストが入力されているかどうかを確認することです。何も入力されていない場合にエラーメッセージをスローしたい。そうするために、隠しフィールドを追加すると思いました:

<input id="hErrorsExist" type="hidden" />

ページにエラーが存在するかどうかの状態を維持するため。これは、フォームにエラーが存在する場合は値を 1 に設定し、それ以外の場合は 0 に設定するためです。

このボタンをクリックすると、値が 1 に設定され、#error (単なる div) が表示されますが、div が消えます。ポストバックが hErrorsExist の値をリセットしたかのようです...

jqueryにチェックを追加しました:

  if ($('#hErrorsExist').val() == "0" || $('#hErrorsExist').val().length == 0) {
            alert("about to hide");
            $('#error').hide();
            alert($('#hErrorsExist').val());
        }
        else {
            $('#error').show();
            alert($('#hErrorsExist').val());
        }

これは、私の文書準備機能の最初のことです。ボタンがポストバックした後でもdiv #errorが発生したままになるように、これを処理する方法がわかりません。値を入力して検証すると、hErrorsExist を 0 に設定し、div #error を非表示にして、ポストバック後に div を非表示のままにする必要があります。

完全なjqueryは次のとおりです。

 $(document).ready(function () {
        /*hide message container on top*/
        //alert($('#hErrorsExist').val().length);
        if ($('#hErrorsExist').val() == "0" || $('#hErrorsExist').val().length == 0) {
            alert("about to hide");
            $('#error').hide();
            alert($('#hErrorsExist').val());
        }
        else {
            $('#error').show();
            alert($('#hErrorsExist').val());
        }

          $("#MainContent_ibSave").click(function () {
            if ($('#MainContent_txtShipToName').val().length == 0) {
                $('#hErrorsExist').val("1");
                alert("Setting to 1");
                alert($('#hErrorsExist').val());
                $('#error').show();
            }
            else {
                $('#hErrorsExist').val("0");
                alert("Setting to 0");
                alert($('#hErrorsExist').val());
                $('#error').hide();
            }
        });
          }); 
4

1 に答える 1

1

これを試しましたか?

$("#<%= MainContent_ibSave.ClientID %>").click(function (arg) {
   arg.preventDefault();
   if ($('#MainContent_txtShipToName').val().length == 0) {
       $('#hErrorsExist').val("1");
       $('#error').show();
   }
   else {
       $('#hErrorsExist').val("0");
       $('#error').hide();
   }
});
于 2012-04-19T21:26:08.307 に答える