用Javascript校验客户端数据
时间:2007-10-22 来源:不详 作者:林子
/* 检测字符串是否全为数字 */
function isnumber(str)
{
var number_chars = "1234567890";
var i;
for (i=0;i<str.length;i )
{
if (number_chars.indexOf(str.charAt(i))==-1) return false;
}
return true;
}
/* 检测指定文本框输入是否合法 */
function verifyInput(input)
{
var image;
var i;
var error = false;
/* 长度校验 */
if (strlen(input.value)>parseInt(input.maxsize))
{
alert(input.chname "超出最大长度" input.maxsize);
error = true;
}
else
/* 非空校验 */
if (input.nullable=="no"&&isnull(input.value))
{
alert(input.chname "不能为空");
error = true;
}
else
{
/* 数据类型校验 */
switch(input.datatype)
{
case "number": if (isnumber(input.value)==false)
{
alert(input.chname "值应该全为数字");
error = true;
}
break;
/* 在这里可以添加多个自定义数据类型的校验判断 */
/* case datatype1: ... ; break; */
/* case datatype2: ... ; break; */
/* ....................................*/
default: break; 内容来自dedecms
}
}
/* 根据有无错误设置或取消警示标志 */
if (error)
{
image = document.getElementById("img_" input.name);
image.src="img/warning.gif";
return false;
}
else
{
image = document.getElementById("img_" input.name);
image.src="img/space.gif";
return true;
}
}
/* 检测指定FORM表单所有应被检测的元素
(那些具有自定义属性的元素)是否合法,此函数用于表单的onsubmit事件 */
function verifyAll(myform)
{
var i;
for (i=0;i<myform.elements.length;i )
{
/* 非自定义属性的元素不予理睬 */
if (myform.elements[i].chname ""=="undefined") continue;
/* 校验当前元素 */
if (verifyInput(myform.elements[i])==false)
{
myform.elements[i].focus();
return false;
}
}
return true;
}
dedecms.com
在univerify.js中,verifyAll用来校验指定表单的数据,它是逐个提取表单中的元素的,不用特别指定表单元素的名字,所以具有通用性。verifyInput是用来实际执行数据校验的函数,如果有新的数据类型datatype需要检测,用户可在此函数中添加,可扩充性好。
文章评论
共有位Admini5网友发表了评论 查看完整内容