通用的客户端脚本验证


//验证客户端
function checkclient()
{
var list = document.all;
for(var i=0 ;i<list.length; i++)
{
var h = list[i].hint;
if(h != null && h != "")
{
if(list[i].isdrop=="true" && list[i].value == "")
{
alert("请选择"+h);
list[i].focus();
return false;
}
else if(list[i].value == "")
{
alert(h + "不能为空");
list[i].focus();
return false;
}
else if(list[i].islaw=="true")
{
flag=checkTxtValue(list[i],h + "有非法字符!");
if (flag == false)
{
return false;
}
}
}
}
return true;
}
function checkTxtValue(txtBoxIn,messtr)
{
//检查文本框是否有非法字符
var strX = new Array('&','%','$','#','@','!','~','`','^','.',
'\'', '*','\/','\\','\"',',','?','<','>','[',']','+', ';');
var i;
try
{
for(i=0;i<strX.length; i++)
{
if(txtBoxIn.value.indexOf(strX[i])>= 0)
{
if(messtr=="") alert('输入框中包含非法字符,请重新输入!');
else alert(messtr);
if(!txtBoxIn.disabled)
{
txtBoxIn.select();
txtBoxIn.focus();
}
return false;
}
}
return true;
}
catch(e) {return false;}
}
页面里的规则:
姓名:<input name="txttime" id="txttime" type="text" islaw="true" hint="姓名" />
省份:<asp:DropDownList ID="ddloffice" runat="server" hint="省份" isdrop="true" >
</asp:DropDownList>
(注:由于我只需要是否为空和非法字符,所以只添加了hint,islaw,isdrop属性,若你有更多的需要,可以添加更多的属性,属性名只要能通过dom解析就OK了)
只能输入数字
οnkeyup="value=value.replace(/[^\d]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
示例:
<input type="text" id="a" name="a" οnkeyup="value=value.replace(/[^\d]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" />
只能输入小数
style="ime-mode:Disabled;" οnkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')"
示例:
<input type="text" id="a" name="a" style="ime-mode:Disabled;" οnkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')"/>
控件textarea的输入文本长度
<textarea id="txtinfo" name="txtinfo" rows="3" cols="70" class="txt" runat="server" onpropertychange="if(this.value.length>200){this.value=this.value.substr(0,200)}"></textarea>