📄 yifangcheckform.js
字号:
divTip.id = "divErrorMessage";
divTip.name = "divErrorMessage";
divTip.style.color = "red";
document.body.appendChild(divTip);
}
divTip.innerHTML = me.message;
}catch(e){}
}
}
/*
* 获得元素是否失效(失效的元素不做判断)
*/
function isDisabled(el)
{
//对于radio,checkbox元素,只要其中有一个非失效元素就验证
if(el.type=="radio"||el.type=="checkbox")
{
//取得第一个元素的name,搜索这个元素组
var tmpels = document.getElementsByName(el.name);
for(var i=0;i<tmpels.length;i++)
{
if(tmpels[i].disabled==false)
{
return false;
}
}
return true;
}
else
{
return el.disabled;
}
}
/*
* 取得对象的值(对于单选多选框把其选择的个数作为需要验证的值)
*/
function getValue(el)
{
//取得表单元素的类型
var sType = el.type;
switch(sType)
{
//文本输入框,直接取值el.value
case "text":
case "hidden":
case "password":
case "file":
case "textarea": return el.value;
//单多下拉菜单,遍历所有选项取得被选中的个数返回结果"0"表示选中一个,"00"表示选中两个
case "checkbox":
case "radio": return getRadioValue(el);
case "select-one":
case "select-multiple": return getSelectValue(el);
}
//取得radio,checkbox的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
function getRadioValue(el)
{
var sValue = "";
//取得第一个元素的name,搜索这个元素组
var tmpels = document.getElementsByName(el.name);
for(var i=0;i<tmpels.length;i++)
{
if(tmpels[i].checked)
{
sValue += "0";
}
}
return sValue;
}
//取得select的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
function getSelectValue(el)
{
var sValue = "";
for(var i=0;i<el.options.length;i++)
{
//单选下拉框提示选项设置为value=""
if(el.options[i].selected && el.options[i].value!="")
{
sValue += "0";
}
}
return sValue;
}
}
/*
* 对没有通过验证的元素设置焦点
*/
function setFocus(el)
{
//取得表单元素的类型
var sType = el.type;
switch(sType)
{
//文本输入框,光标定位在文本输入框的末尾
case "text":
case "hidden":
case "password":
case "file":
case "textarea":
try{el.focus();var rng = el.createTextRange(); rng.collapse(false); rng.select();}catch(e){};
break;
//单多选,第一选项非失效控件取得焦点
case "checkbox":
case "radio":
var els = document.getElementsByName(el.name);
for(var i=0;i<els.length;i++)
{
if(els[i].disabled == false)
{
els[i].focus();
break;
}
}
break;
case "select-one":
case "select-multiple":
el.focus();
break;
}
}
//自动绑定到所有form的onsubmit事件
if(window.attachEvent)
{
window.attachEvent("onload",function()
{
for(var i=0;i<document.forms.length;i++)
{
var theFrom = document.forms[i];
if(theFrom)
{
theFrom.attachEvent("onsubmit",function(){return checkForm(theFrom);});
theFrom.attachEvent("onclick",function(){
var o = event.srcElement;
if(typeof(o.type)!="undefined")
{
var check = o.getAttribute("check");
if(typeof(check)!="undefined"&&check!=null&&check.toLowerCase()=="false")
{
me.cancel = true;
}
}
}
);
}
}
}
);
}
else
{
window.onsubmit = function(e){var theFrom = e.target;if(theFrom){return checkForm(theFrom);}}
window.addEventListener("click",function(e)
{
var o = e.target;
if(typeof(o.type)!="undefined")
{
var check = o.getAttribute("check");
if(typeof(check)!="undefined"&&check!=null&&check.toLowerCase()=="false")
{
me.cancel = true;
}
}
},false);
}
this.keyCheck = function()
{
if(window.attachEvent)
{
window.attachEvent("onload",function(){for(var i=0;i<document.forms.length;i++){var theFrom = document.forms[i]; if(theFrom){myKeyCheck(theFrom);}}});
}
else
{
//TOOD
}
function myKeyCheck(oForm)
{
var els = oForm.elements;
//遍历所有表元素
for(var i=0;i<els.length;i++)
{
//取得格式
var sUsage = els[i].getAttribute("Usage");
//如果设置Usage,则使用内置正则表达式,忽略Exp
if(typeof(sUsage)!="undefined"&&sUsage!=null)
{
switch(sUsage.toLowerCase ())
{
case "zipcode":
case "int":
els[i].onkeypress = function(){return /\d/.test(String.fromCharCode(event.keyCode))||(this.value.indexOf('+')<0?String.fromCharCode(event.keyCode)=="+":false)||(this.value.indexOf('-')<0?String.fromCharCode(event.keyCode)=="-":false);}
els[i].onpaste = function(){return !clipboardData.getData('text').match(/\D/);}
els[i].ondragenter = function(){return false;}
els[i].style.imeMode= "disabled";
break;
case "mobile":
case "int+":
els[i].onkeypress = function(){return /\d/.test(String.fromCharCode(event.keyCode))||(this.value.indexOf('+')<0?String.fromCharCode(event.keyCode)=="+":false);}
els[i].onpaste = function(){return !clipboardData.getData('text').match(/\D/);}
els[i].ondragenter = function(){return false;}
els[i].style.imeMode= "disabled";
break;
case "int-":
els[i].onkeypress = function(){return /\d/.test(String.fromCharCode(event.keyCode))||(this.value.indexOf('-')<0?String.fromCharCode(event.keyCode)=="-":false);}
els[i].onpaste = function(){return !clipboardData.getData('text').match(/\D/);}
els[i].ondragenter = function(){return false;}
els[i].style.imeMode= "disabled";
break;
case "float":
case "num":
els[i].onkeypress = function(){return /[\+\-\.]|\d/.test(String.fromCharCode(event.keyCode));}
els[i].onpaste = function(){return !clipboardData.getData('text').match(/\D/);}
els[i].ondragenter = function(){return false;}
els[i].style.imeMode= "disabled";
break;
case "float+":
case "num+":
els[i].onkeypress = function(){return /[\+\.]|\d/.test(String.fromCharCode(event.keyCode));}
els[i].onpaste = function(){return !clipboardData.getData('text').match(/\D/);}
els[i].ondragenter = function(){return false;}
els[i].style.imeMode= "disabled";
break;
case "float-":
case "num-":
els[i].onkeypress = function(){return /[\-\.]|\d/.test(String.fromCharCode(event.keyCode));}
els[i].onpaste = function(){return !clipboardData.getData('text').match(/\D/);}
els[i].ondragenter = function(){return false;}
els[i].style.imeMode= "disabled";
break;
case "ascii":
els[i].style.imeMode= "disabled";
break;
case "ip4":
els[i].onkeypress = function(){return /[\.]|\d/.test(String.fromCharCode(event.keyCode));}
els[i].onpaste = function(){return !clipboardData.getData('text').match(/\D/);}
els[i].ondragenter = function(){return false;}
els[i].style.imeMode= "disabled";
els[i].maxLength = 15;
break;
case "color":
els[i].onkeypress = function(){return /[a-fA-Z]|\d/.test(String.fromCharCode(event.keyCode))||(this.value.indexOf('#')<0?String.fromCharCode(event.keyCode)=="#":false);}
els[i].onpaste = function(){return !clipboardData.getData('text').match(/\D/);}
els[i].ondragenter = function(){return false;}
els[i].maxLength = 7;
els[i].style.imeMode= "disabled";
break;
case "date":
els[i].onkeypress = function(){return /[\/\-\.]|\d/.test(String.fromCharCode(event.keyCode));}
els[i].onpaste = function(){return !clipboardData.getData('text').match(/\D/);}
els[i].ondragenter = function(){return false;}
els[i].style.imeMode= "disabled";
break;
}
}
}
}
}
}
//初始化
var g_check = new CLASS_CHECK();
g_check.keyCheck();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -