概述
在将代码迁移后,发现RequiredFieldValida控件对textbox验证失效,从RequiredFieldValidator控件生成的js中(WebResource.axd)知道是在
if (typeof(val.evaluationfunction) == "function") {
val.isvalid = val.evaluationfunction(val);
if (!val.isvalid && Page_InvalidControlToBeFocused == null &&
typeof(val.focusOnError) == "string" && val.focusOnError == "t") {
ValidatorSetFocus(val, event);
}
}
中 typeof(val.evaluationfunction)不是function而引起的,RequiredFieldValidator控件生成的html标签中evaluationfunction="RequiredFieldValidatorEvaluateIsValid",而在兼容性evaluationfunction="function RequiredFieldValidatorEvaluateIsValid(val) {
return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) != ValidatorTrim(val.initialvalue))
}“
解决方法一:可以重写RequiredFieldValidator的evaluationfunction
var val = document.getElementById('<%= RequiredFieldValidatorId.ClientID %>');
function RequiredFieldNewFunction()
{
return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) != ValidatorTrim(val.initialvalue));
}
val.evaluationfunction = RequiredFieldNewFunction();
解决方法二: 就是看web.config中是不是是设置了
<xhtmlConformance mode="Legacy"/>
将其注释掉或者改成transitional,而xhtmlConformance可以网上查资料
谷歌现在直接用ip访问好像挺不错 http://209.116.186.231/
最后
以上就是冷静大船为你收集整理的ASP.NET中RequiredFieldValidator控件失效的解决办法的全部内容,希望文章能够帮你解决ASP.NET中RequiredFieldValidator控件失效的解决办法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复