日期:2014-05-16  浏览次数:20452 次

日常JS页面验证封装
/***********************************
* JSP页面输入有效性校验
* author:
* create date:
* update date:
* update content: 此文件在原先使用文件checkvalue.jsp基础上,结合原先的使用经验做了如下改进
* 1 增加函数CheckSpecChar(FormName),直接校验整个form的所有输入控件是否包含非法字符。
* 2 函数CheckInputValue原先传入参数输入框内容,改为输入框对象名称,这样一旦校验不通过,光标可以定位到对象。
* 3 优化日期校验,原先对日期格式只校验输入字符,没有校验长度以及yyyy-mm-dd格式中年月日各自是否满足要求。
* 4 优化Email格式校验
* 5 原先输入框允许为空,同时如果输入内容有最短长度限制时候,无法校验,现已修改,能够支持。
*
* 增加系数Rate类型,不能大于1
* 增加时间Time类型,24h:mi格式
*********************************/
//提交表单时清理所有的非隐藏表单元素值的左右空格并校验是否含有非法字符--liuchuang
function submitclean(FormName){
var str = "'<>\""; //非法字符集
for (var index = 0; index < FormName.elements.length; index++) {
if(FormName.elements[index].type != "hidden"){
//去除左右空格
FormName.elements[index].value = FormName.elements[index].value.replace(/^\s+|\s+$/g,"");
for(i = 0; i < FormName.elements[index].value.length; i++){
if (str.indexOf(FormName.elements[index].value.substring(i,i + 1)) >= 0){
alert("输入的内容不能含有非法字符:" + str);
FormName.elements[index].focus();
return false;
}
}
}
}
return true;
}
//该函数用于带查询条件的显示页面,页面加载时判断哪个form元素应该默认获得焦点--liuchuang
function formFocus(FormName){
var isfocus =false;
for (var index = 0; index < FormName.elements.length; index++) {
if(FormName.elements[index].className=='lc') continue;
if(FormName.elements[index].tagName=='INPUT'
|| FormName.elements[index].tagName=='SELECT'
|| FormName.elements[index].tagName=='TEXTAREA')
{
if(FormName.elements[index].type != "hidden" && FormName.elements[index].value!=""){

FormName.elements[index].focus();
isfocus =true;
break;
}
}
}
if(!isfocus){
for (var index = 0; index < FormName.elements.length; index++) {
if(FormName.elements[index].className=='lc') continue;
if(FormName.elements[index].tagName=='INPUT'
|| FormName.elements[index].tagName=='SELECT'
|| FormName.elements[index].tagName=='TEXTAREA')
{
if(FormName.elements[index].type != "hidden"){

FormName.elements[index].focus();
break;
}
}
}

}
}

//清除文本框字符串的前后所有空格
String.prototype.trim = function() //removes the Left side and the right side blank space
{
return this.replace(/(^\s*)|(\s*$)/g, "")
}

//文本框获得焦点后,如果文本框不为空,则将焦点放置在字符串之后
function cc() //generater after onfocus()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}

//判断Form中所有对象的值中是否有特殊字符
function CheckSpecChar(FormName){
//传入参数为form的名称
bString = "'<>\""; //非法字符集
for (var ObjID=0; ObjID < FormName.elements.length; ObjID++) {
for(i = 0; i < FormName.elements[ObjID].value.length; i ++){
if (bString.indexOf(FormName.elements[ObjID].value.substring(i,i+1)) >= 0){
alert('输入的内容不能包含非法字符:' + bString);
FormName.elements[ObjID].focus();
return false;
}
}
}
return true;
}

//校验不合格后,光标自动定位到不符合格式要求的控件中
function CheckInputValue(input_desc,//输入框内容的中文名称
ObjName ,//输入框对象名称
is_empty,//false-不可以为空;true-可以为空
input_type,//输入框内容类型
input_minlength,//输入框内容的最小长度
input_maxlength//输入框内容的最长长度
){

//不能为空
if(!is_empty && CheckIsNull(ObjName.value)){
alert(input_desc + "不能为空!");
ObjName.value="";//liuchuang补充于20080619:输入空格后,将空格清除!
ObjName.focus();
return false;
}
if(is_empty && CheckIsNull(ObjName.value)){
return true;
}
//输入框内容的最小长度限制,并且输入框不为空,(剔除输入框为空的情况)
if(input_minlength != 0 && ObjName.value.length < input_minlength && ObjName.value.length > 0){
alert(input_desc + "长度不能低于" + input_minlength + "个字符!");
ObjName.focus();
return false;
}

if(input_maxlength != 0 && ObjName.value.length > input_maxlength ){
alert(input_desc + "长度不能超过" + input_maxlength + "个字符!");
ObjName.focus();
return false;
}

/***************
* 统一调用函数CheckSpecChar(FormName),整个form一次检查
* ***************/
/*
if(input_type == "String"){
if(!CheckString(ObjName.value)){
alert(input_desc + "不能包含<、>、'、\"、/、\\");
ObjName.focus();
return false;
}
}*/
if(input_type == "StringNoError"){
if(!CheckStringNoError(ObjName.value)){
alert(input_desc + "不能包含<、>、'、\"、/、\\");