类似于.Net Validator控件功能JS实现

///<summary>必填必选项控件赋值检验 - RequiredFieldValidator</summary>///
//
/<parms>ToControl - 要检测的控件; ValidControl - 显示验证消息的控件;</parms>///
//
/<returns>true/false;</returns>///
//
/<invoke>ToControl.OnBlur();</invoke>///
function OnValidRequiredField(ToControl,ValidControl)
{
    
var validValue;
    
var objToControl;
    
var objValidControl;
    objToControl 
= document.getElementById(ToControl);
    objValidControl 
= document.getElementById(ValidControl);
    
    
if(objToControl.tagName.toLowerCase() == 'select')
    {
        validValue 
= objToControl.options[objToControl.selectedIndex].text;
    }
    
else
    {
        validValue 
= objToControl.value;
    }
    
    
    
if(validValue.trim() == '')
    {
        objValidControl.style.display
='block';
        
return false;
    }
    objValidControl.style.display
='none';
    
return true;
}

//全局正则变量
var RegEmail=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
var RegPost=/\d{6}/;

///<summary>控件赋值正则验证 - RegularExpressionValidator</summary>///
//
/<parms>ToControl - 要检测的控件; ValidControl - 显示验证消息的控件; ValidationExpression - 正则表达式; 
//
 DynamicDisplay - 是否动态显示消息; IsRequired - 是否是必填项; AlertMsg - 显示消息;</parms>///
//
/<returns>true/false;</returns>///
//
/<invoke>ToControl.OnBlur();</invoke>///
function OnValidRegularExpression(ToControl,ValidControl, ValidationExpression, DynamicDisplay, IsRequired, AlertMsg)
{
    
var validValue;
    
var objToControl;
    
var objValidControl;
    objToControl 
= document.getElementById(ToControl);
    objValidControl 
= document.getElementById(ValidControl);    
    validValue 
= objToControl.value.trim();        
    
    objValidControl.style.color
='#ff0000';
    
    
if(IsRequired==false && validValue=='' && DynamicDisplay == true)
    {
        objValidControl.style.display
='none';
        
return true;
    }    
    
    
if(validValue.match(ValidationExpression) == null)
    {
        
if(AlertMsg!=undefined && AlertMsg!='')
        {            
            objValidControl.innerHTML
=AlertMsg;
        }
        objValidControl.style.display
='block';        
        
return false;
    }
    
    
if(DynamicDisplay == true)
    {
        objValidControl.style.display
='none';
    }    
    
else if(objValidControl.style.display=='none')
    {
        objValidControl.style.display
='block';
    }
    
return true;
}


///<summary>控件赋值相同比较 - CompareValidator</summary>///
//
/<parms>ToControl - 比较参照控件; ToValidControl - 比较检测的控件; ValidControl - 显示验证消息的控件; AlertMsg - 显示消息;</parms>///
//
/<returns>相同-true/不相同-false;</returns>///
//
/<invoke>ToControl.OnBlur();</invoke>///
function OnValidCompare(ToControl,ToValidControl,ValidControl,AlertMsg)
{
    
var referenceValue;
    
var validValue;
    
var objToControl;
    
var objValidControl;
    objToControl 
= document.getElementById(ToControl);
    objToValidControl 
= document.getElementById(ToValidControl);    
    objValidControl 
= document.getElementById(ValidControl);    
    referenceValue 
= objToControl.value.trim();
    validValue 
= objToValidControl.value.trim();        
    
    objValidControl.style.color
='#ff0000';
    
if(validValue != referenceValue)
    {
        
if(AlertMsg!=undefined && AlertMsg!='')
        {            
            objValidControl.innerHTML
=AlertMsg;
        }
        objValidControl.style.display
='block';        
        
return false;
    }    
    objValidControl.style.display
='none';    
    
return true;

    <script language="javascript">
        
<!--
            
///<summary>提交总体验证 - ValidationSummary </summary>///
            ///<invoke>SubmitButton.Click();</invoke>///
            function OnValidSummary()
            {
                
var retVal=true;                
                
var varSummary;
                varSummary
='';
                
                varSummary 
+= '<ul style="color:red; font-style:oblique;">';
                
if(!OnValidRequiredField("txtTitle","spnValidTitle")) {varSummary += '<li>新闻标题必填</li>'; retVal=false;}
                
if(!OnValidRequiredField("selType","spnValidType")) {varSummary += '<li>所属类型必选</li>'; retVal=false;}
                
if(!OnValidRequiredField("txtEditor","spnValidContent")) {varSummary += '<li>内容不能为空</li>'; retVal=false;}
                varSummary 
+= '</ul>';                
                document.getElementById('divValidSummary').style.display
="block";
                document.getElementById('divValidSummary').innerHTML
=unescape(varSummary);
                
                
return retVal;
            }
        
//-->
        </script>

//去除字符串空格
function trim(s)
{            
    
return s.replace(/(^\s+)|(\s+$)/g,"");
}

// 增加一个名为 trim 的函数作为
//
 String 构造函数的原型对象的一个方法。
String.prototype.trim = function()
{
    
// 用正则表达式将前后空格
    // 用空字符串替代。
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
posted @ 2006-03-24 19:13  blueKnight  Views(477)  Comments(0Edit  收藏  举报