我在运行时遇到错误&chuLeapYear_ServerValidate'未定义
验证器定义为
<asp:CustomValidator ID="CustomValidator1" runat="server"
ClientValidationFunction="cvLeapYear_ServerValidate"
ControlToValidate="txtLeapYear" ErrorMessage="Not a leap year">
</asp:CustomValidator>
功能
protected void cvLeapYear_ServerValidate(object source,ServerValidateEventArgs args)
{
int year;
try
{
year = Convert.ToInt32 (args.Value);
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}
catch(Exception e)
{
args.IsValid = false;
}
}
在后端代码中定义,后面的javascript代码在aspx webform中定义
<script type="text/javascript">
function isLeapYear(sender,args)
{
year = parseInt(args.Value);
if((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0))
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}
</script>
和clientValidation函数也已设置。
答案 0 :(得分:3)
<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction="isLeapYear" ControlToValidate="txtLeapYear" ErrorMessage="Not a leap year" OnServerValidate="cvLeapYear_ServerValidate" ></asp:CustomValidator>
添加javascript函数的名称,如上面的代码
中所示答案 1 :(得分:0)
ClientValidationFunction
应该具有javascript函数的值,该函数被调用以从客户端进行验证。
您必须致电isLeapYear
函数。
<asp:CustomValidator ID="CustomValidator1" runat="server"
ClientValidationFunction="isLeapYear"
ControlToValidate="txtLeapYear" ErrorMessage="Not a leap year">
</asp:CustomValidator>
您的函数cvLeapYear_ServerValidate
是服务器端函数,您可以使用OnServerValidate
属性调用该函数。
<asp:CustomValidator ID="CustomValidator1" runat="server"
OnServerValidate ="cvLeapYear_ServerValidate"
ControlToValidate="txtLeapYear" ErrorMessage="Not a leap year">
</asp:CustomValidator>