我使用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>
答案 0 :(得分:2)
问题是TextBox的ID。当放置在母版页中时,它会获得不同的ClientID。
var sUser = document.getElementById('<%= TextBox1.ClientID %>');
答案 1 :(得分:1)
您需要使用ClientID
用
替换你的代码var sUser = document.getElementById('<%= TextBox1.ClientID %>');
答案 2 :(得分:0)
尝试使用document.getElementById('ct100_TextBox1')。value。这只是一个临时修复!!但有人请建议如何使用代码动态获取此ID。我通过查看生成的页面源获得此信息。我也在这里发布了同样的问题 link text