在母版页中使用javascript验证文本框

时间:2010-09-17 09:38:33

标签: c# javascript asp.net master-pages

我使用javascript for customValidator来验证ASP.Net中的文本框。 当我使用普通页面时,代码工作正常,但只要我将它放在MasterPage中,代码就不起作用。

以下是我的aspx页面的代码。如果我将此代码放在MasterPage中,它就不起作用。 你们能告诉我如何在MasterPage中完成这项工作

谢谢, ABHI。

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">

<script type="text/javascript">
 function validateOrFields(source, args){
 var sUser = document.getElementById('TextBox1');

   if (sUser.value == "")
   {
      args.IsValid = false;
   }
   else
   {
      args.IsValid = true;
   }  
   return;  
 }

<div>
    <asp:TextBox ID="TextBox1"
        runat="server"></asp:TextBox>
        <asp:CustomValidator ID="FieldValidator" 
                    runat="server" 
                    Text="Enter either a user name" 
                    ClientValidationFunction="validateOrFields" onservervalidate="FieldValidator_ServerValidate"/>
        <asp:Button ID="Button1" runat="server" Text="Button" />
</div>
</form>
</body>
</html>

3 个答案:

答案 0 :(得分:2)

问题是TextBox的ID。当放置在母版页中时,它会获得不同的ClientID。

var sUser = document.getElementById('<%= TextBox1.ClientID %>');

答案 1 :(得分:1)

您需要使用ClientID

来获取ID

替换你的代码
var sUser = document.getElementById('<%= TextBox1.ClientID %>');

答案 2 :(得分:0)

尝试使用document.getElementById('ct100_TextBox1')。value。这只是一个临时修复!!但有人请建议如何使用代码动态获取此ID。我通过查看生成的页面源获得此信息。我也在这里发布了同样的问题 link text