验证文本框但回发重置隐藏字段?

时间:2012-04-19 21:20:31

标签: jquery asp.net

我有一个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();
            }
        });
          }); 

1 个答案:

答案 0 :(得分: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();
   }
});