我在一个web页面里用到了RegularExpressionValidator控件验证TextBox,然后我自己又编写了一个js函数,让button的click事件调用,结果出现了如下问题:
1、在TextBox输入,单击button时click事件可以触发js函数验证
2、在TextBox输入时可以触发RegularExpressionValidator验证
3、但是当TextBox输入明显有错时,单击Button却不能触发RegularExpressionValidator验证Page页里的控件。

我的js函数如下:
function Check_value(frm)
{
 var Condate=frm.txtdate.value;
 Condate = Condate.replace(/-/g,"\/");
 var time0 = new Date(); 
 var time1 = new Date(Condate); 
 var date0=Date.parse(time0);
 var date1=Date.parse(time1);
 if(date1 > time0)
 {
  alert("最后接触日期不能大于今天的日期。");
  return false;
 }
}
然后我在页面加载时:
btnAdd.Attributes["onClick"] = "javascript:return Check_value("+this.ID+");";问题就出在3,CausesValidation是为true的。


修改代码如下,即可解决此问题:
btnAdd.Attributes["onClick"]="javascript: if(Page_ClientValidate()) return Check_value("+this.ID+");";

主要在前面增加了如果RequiredFieldValidator控件验证通过后,再调用js函数,测试成功。

相关文章: