0

我想设置可见valError。我尝试了一切,但它不起作用。有人可以帮助我吗?

<script type="text/javascript">    
    function ValidateTextBox(elem) {
        if (elem.val() == "") {                
            return false;
        }
        else return true;
    }

    function ValidateForm() {
      var a = ValidateTextBox($('[id$=txtBxLangName]'));

      if (a)
          return true;
      else {                                          
          $('#valError').html('Please fill required field');
          $('#valError').show();
          return false;
           }
     } 
</script>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
   <div class="alert alert-error" visible="false" id="valError" runat="server">                       
   </div>                         
   <asp:TextBox ID="txtBxLangName" runat="server" CssClass="textEntry">
   </asp:TextBox>
   <asp:Button ID="btnNewAndUpdate" runat="server" Text="Save" OnClick="btnNewAndUpdate_Click" OnClientClick="return ValidateForm()" />
</asp:Content>
4

3 回答 3

9
<div class="alert alert-error" visible="false" id="valError" runat="server">  

应该

<div class="alert alert-error" style="display: none" id="valError" runat="server">  

然后.show()会工作。

仅出于其他人查看此问题的目的,以下答案显示了此解决方案工作还需要什么:

 <asp:TextBox ID="txtBxLangName" runat="server" CssClass="textEntry" ClientIDMode="Static">
 </asp:TextBox>
于 2013-04-09T08:30:54.430 回答
2

@thedixon 答案是正确的,但是您也有另一个问题。当 .net 将文本框呈现给客户端时,文本框txtBxLangName可能没有该 ID。尝试添加ClientIDMode值 static 以确保 ID 设置为txtBxLangName

 <asp:TextBox ID="txtBxLangName" runat="server" CssClass="textEntry">
   </asp:TextBox>

变成

 <asp:TextBox ID="txtBxLangName" runat="server" CssClass="textEntry" ClientIDMode="Static">
   </asp:TextBox>
于 2013-04-09T08:33:29.630 回答
-1

它应该用 .show 显示,确保#valError div 中有一些内容或设置它的宽度、高度和背景并尝试显示块。

$('#valError').css('display','block');
于 2013-04-09T08:34:53.780 回答