Asp.net中验证控件扩展,使被验证框高亮
function ValidatorUpdateIsValid() {
var i;
var item;
var index=-1;
var canPass=true;
var j=0;
var bannerAD = new Array();
for (i = 0; i < Page_Validators.length; i++) {
if (!Page_Validators[i].isvalid) {
//alert(Page_Validators[i].id+'-------a');
item = document.getElementById(Page_Validators[i].controltovalidate);
//item.style.borderColor="red";
bannerAD[j]=item;
//alert(bannerAD[j]);
j++;
//index=i;
//canPass=false;
Page_IsValid = false;
//return;
}
else
{
//alert(Page_Validators[i].id+'------b');
item = document.getElementById(Page_Validators[i].controltovalidate);
item.style.borderColor="#ababab";
//Page_IsValid = true;
}
}
for( var t=0;t<bannerAD.length;t++)
{
//alert(bannerAD[t]);
bannerAD[t].style.borderColor="red";
}
for (i = Page_Validators.length-1; i >=0 ; i--) {
if (!Page_Validators[i].isvalid) {
index=i;
canPass=false;
}
}
if(index>=0)
{
item = document.getElementById(Page_Validators[index].controltovalidate);
item.focus();
}
if(!canPass)
return;
Page_IsValid = true;
}
将上面的代码复制到任何一个使用验证控件的页面,此函数将会覆盖WebUIValidation里的同名函数,达到背景变色的目的
环境:asp.net 1.1,ie(很遗憾,firefox在asp.net1.1环境下,验证控件的客户端验证不会起作用)
ServerSide Code:
public static void SetControl(System.Web.UI.UserControl objUserControl)
{
System.Web.UI.WebControls.BaseValidator validator=null;
object controtovalidator=null;
System.Web.UI.WebControls.WebControl wc=null;
foreach( IValidator validator in Page.Validators[0] )
{
if(!validator.IsValid)
{
wc.Attributes.Add("style","border-color:red");
}
else
{
wc.Attributes.Add("style","border-color:");
}
}
}
Code example:
static public void onRegisterValidation(Registration objRegistration)
{
if(objRegistration.Page.IsValid)
{
…
}
else
{
SetControl(objRegistration.InnerRegistrationInstance);
}
}