FormValid0.5版本发布,带ajax自定义验证例子_表单特效

企鹅博客
企鹅博客
企鹅博客
25193
文章
0
评论
2020年8月30日00:04:34 评论 36 views
最新更新修改了当input元件name有包含[],把焦点移到元件上时会出现JS错误,只有IE是这种情况,没找到很好的解决办法,我只是把这种情况给排除了,就是当元件name有包含[]不把焦点移上去,哪果有好的解决办法请联系我。

并作了 demo8 - 结合jquery实现ajax自定义验证

下载:
formvalid.zip
复制代码 代码如下:

/*

* Copyright (c) 2006-2008 coderhome.net

* All rights reserved.

* Support : 志凡([email protected])

*

* Version : 0.5

*/

var FormValid = function(frm) {

this.frm = frm;

this.errMsg = new Array();

this.errName = new Array();

this.required = function(inputObj) {

if (typeof(inputObj) == "undefined" || inputObj.value.trim() == "") {

return false;

}

return true;

}

this.eqaul = function(inputObj, formElements) {

var fstObj = inputObj;

var sndObj = formElements[inputObj.getAttribute('eqaulName')];

if (fstObj != null && sndObj != null) {

if (fstObj.value != sndObj.value) {

return false;

}

}

return true;

}

this.gt = function(inputObj, formElements) {

var fstObj = inputObj;

var sndObj = formElements[inputObj.getAttribute('eqaulName')];

if (fstObj != null && sndObj != null && fstObj.value.trim()!='' && sndObj.value.trim()!='') {

if (fstObj.value <= sndObj.value) {

return false;

}

}

return true;

}

this.compare = function(inputObj, formElements) {

var fstObj = inputObj;

var sndObj = formElements[inputObj.getAttribute('objectName')];

if (fstObj != null && sndObj != null && fstObj.value.trim()!='' && sndObj.value.trim()!='') {

if (!eval('fstObj.value' + inputObj.getAttribute('operate') + 'sndObj.value')) {

return false;

}

}

return true;

}

this.limit = function (inputObj) {

var len = inputObj.value.length;

if (len) {

var minv = inputObj.getAttribute('min');

var maxv = inputObj.getAttribute('max');

minv = minv || 0;

maxv = maxv || Number.MAX_VALUE;

return minv <= len && len <= maxv;

}

return true;

}

this.range = function (inputObj) {

var val = parseInt(inputObj.value);

if (inputObj.value) {

var minv = inputObj.getAttribute('min');

var maxv = inputObj.getAttribute('max');

minv = minv || 0;

maxv = maxv || Number.MAX_VALUE;

return minv <= val && val <= maxv;

}

return true;

}

this.requireChecked = function (inputObj) {

var minv = inputObj.getAttribute('min');

var maxv = inputObj.getAttribute('max');

minv = minv || 1;

maxv = maxv || Number.MAX_VALUE;

var checked = 0;

var groups = document.getElementsByName(inputObj.name);

for(var i=0;i
if(groups[i].checked) checked++;

}

return minv <= checked && checked <= maxv;

}

this.filter = function (inputObj) {

var value = inputObj.value;

var allow = inputObj.getAttribute('allow');

if (value.trim()) {

return new RegExp("^.+\.(?=EXT)(EXT)$".replace(/EXT/g, allow.split(/\s*,\s*/).join("|")), "gi").test(value);

}

return true;

}

this.isNo = function (inputObj) {

var value = inputObj.value;

var noValue = inputObj.getAttribute('noValue');

return value!=noValue;

}

this.checkReg = function(inputObj, reg, msg) {

inputObj.value = inputObj.value.trim();

if (inputObj.value == '') {

return;

} else {

if (!reg.test(inputObj.value)) {

this.addErrorMsg(inputObj.name,msg);

}

}

}

this.passed = function() {

if (this.errMsg.length > 0) {

FormValid.showError(this.errMsg,this.errName,this.frm.name);

if (this.errName[0].indexOf('[')==-1) {

frt = document.getElementsByName(this.errName[0])[0];

if (frt.type!='radio' && frt.type!='checkbox') {

frt.focus();

}

}

return false;

} else {

return FormValid.succeed();

}

}

this.addErrorMsg = function(name,str) {

this.errMsg.push(str);

this.errName.push(name);

}

this.addAllName = function(name) {

FormValid.allName.push(name);

}

}

FormValid.allName = new Array();

FormValid.showError = function(errMsg) {

var msg = "";

for (i = 0; i < errMsg.length; i++) {

msg += "- " + errMsg[i] + "\n";

}

alert(msg);

}

FormValid.succeed = function () {

return true;

}

function validator(frm) {

var formElements = frm.elements;

var fv = new FormValid(frm);

for (var i=0; i
var validType = formElements[i].getAttribute('valid');

var errorMsg = formElements[i].getAttribute('errmsg');

if (!errorMsg) {

errorMsg = '';

}

if (validType==null) continue;

fv.addAllName(formElements[i].name);

var vts = validType.split('|');

var ems = errorMsg.split('|');

for (var j=0; j
var curValidType = vts[j];

var curErrorMsg = ems[j];

switch (curValidType) {

case 'isNumber':

case 'isEmail':

case 'isPhone':

case 'isMobile':

case 'isIdCard':

case 'isMoney':

case 'isZip':

case 'isQQ':

case 'isInt':

case 'isEnglish':

case 'isChinese':

case 'isUrl':

case 'isDate':

case 'isTime':

fv.checkReg(formElements[i],RegExps[curValidType],curErrorMsg);

break;

case 'regexp':

fv.checkReg(formElements[i],new RegExp(formElements[i].getAttribute('regexp'),"g"),curErrorMsg);

break;

case 'custom':

if (!eval(formElements[i].getAttribute('custom')+'(formElements[i],formElements)')) {

fv.addErrorMsg(formElements[i].name,curErrorMsg);

}

break;

default :

if (!eval('fv.'+curValidType+'(formElements[i],formElements)')) {

fv.addErrorMsg(formElements[i].name,curErrorMsg);

}

break;

}

}

}

return fv.passed();

}

String.prototype.trim = function() {

return this.replace(/^\s*|\s*$/g, "");

}

var RegExps = function(){};

RegExps.isNumber = /^[-\+]?\d+(\.\d+)?$/;

RegExps.isEmail = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/;

RegExps.isPhone = /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/;

RegExps.isMobile = /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/;

RegExps.isIdCard = /(^\d{15}$)|(^\d{17}[0-9Xx]$)/;

RegExps.isMoney = /^\d+(\.\d+)?$/;

RegExps.isZip = /^[1-9]\d{5}$/;

RegExps.isQQ = /^[1-9]\d{4,10}$/;

RegExps.isInt = /^[-\+]?\d+$/;

RegExps.isEnglish = /^[A-Za-z]+$/;

RegExps.isChinese = /^[\u0391-\uFFE5]+$/;

RegExps.isUrl = /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;

RegExps.isDate = /^\d{4}-\d{1,2}-\d{1,2}$/;

RegExps.isTime = /^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}$/;


本地下载

继续阅读
企鹅博客
  • 本文由 发表于 2020年8月30日00:04:34
  • 转载请务必保留本文链接:https://www.qieseo.com/383748.html
使用js提交表单form js教程

使用js提交表单form

首先我们先用html创建一个表单 Name: Email: <--一般情况下,这里是使用submit--> 在这个表单中,我们没用使用submit,我们准备使用js来提交这个表单。首先介绍...
js下载以及修改文件名的实例教程 js教程

js下载以及修改文件名的实例教程

这篇文章主要为大家详细介绍了js下载文件并修改文件名的代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 用js下载文件,使用<a>标签,添加download属性即可。 var a =...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: