一、有多个栏位,第一个出错的栏位要取得焦点。
栏位1:不可为空值; 栏位2:数量不可为0与负值(整数部分最多8位,小数部分四舍五入); 栏位3:必须为short类型。
//驗證
function validate(){
var msg="錯誤信息: ";
var errorSpring=document.getElementById("errorSpring");
var flag=0;
//栏位1不可為空
var state=document.getElementById("ADO.field1");
if(state==null||state.value==""){
state.focus();
flag=1;//已发现错误,取得焦点了。
msg+="栏位1不可為空";
}
//數量不可為0與負值
var qty=document.getElementById("qty");
var temp=/^(([1-9]\d*(\.\d*){0,1})|(0(\.\d*[1-9]\d*){1}))$/;//格式類型(整数 或 大於0的浮點型)
var temp2=/^(([1-9]\d{0,7}(\.\d*){0,1})|(0(\.\d*[1-9]\d*){1}))$/;//整數最多8位
var temp3=/([0-9]+\.[0-9]{4})[0-9]*/;//小數超過4位
if(qty.value==""){
if(flag==0)
{
msg+="數量不可為空";
qty.focus();//若为第一次错误,则取得焦点;否则之前的错误栏位已经取得焦点了。
}else{
msg+=";數量不可為空";
}
flag=1;
}else if(!temp.test(qty.value)){//輸入類型,格式匹配
if(flag==0)
{
msg+="數量為大於0的浮點/整數類型";
qty.focus();
}else{
msg+=";數量為大於0的浮點/整數類型";
}
flag=1;
}else if(!temp2.test(qty.value)){//長度限制不匹配(整數超出8位-顯示錯誤)
if(flag==0)
{
msg+="數量整數位最多8位";
qty.focus();
}else{
msg+=";數量整數位最多8位";
}
flag=1;
}else if(temp3.test(qty.value)){//小數超出4位-四捨五入
qty.value=qty.value.replace(temp3,"$1");
}
//序號必須為short類型
var num=document.getElementById("applyItem");
var temp4=/^[1-9]\d*$/;//正整數
if(num!=null&&num.value!=""&&!temp4.test(num.value)){
if(flag==0)
{
msg+="序號必須為>1的整數值";
num.focus();
}
else{
msg+=";序號必須為>1的整數值";
}
flag=1;
}else if(parseInt(num.value)>32767){//short类型最大为32767
if(flag==0)
{
msg+="序號數值過大";
num.focus();
}
else{
msg+=";序號數值過大";
}
flag=1;
}
if(flag!=0){
document.getElementById("errorMsg").innerHTML =msg;
if(errorSpring!=null){
errorSpring.innerHTML="";
}
return false;
}
return true;
}
二、Ext验证
<input type="number" size="5" ... apply="true" val="{allowBlank:false,blankText:'不能为空!',allowNegative:false,allowDecimals:false,minValue:1,maxLength:5,maxLengthText:'最大为5位',minText:'必须大于或等于:{0}'}"/>