论坛首页 Web前端技术论坛

配置超简单的Jquery form validate验证框架(修改与扩展)

浏览 29921 次
精华帖 (0) :: 良好帖 (13) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-07-30  
不知道楼主是什么解决ie6下select遮挡div的,我这里有个办法,楼主把它加到首页把。
jquery.validationEngine.js要修改的地方:
 calculatedPosition.callerTopPosition += "px";
            calculatedPosition.callerleftPosition += "px";
            calculatedPosition.marginTopSize += "px";
            //add matychen 
            if ( $.browser.msie && /6.0/.test(navigator.userAgent) ) {
            $(divFormError).append('<iframe class="iframe" frameborder="0" scr="javascript:false;"></iframe>');
            }
            // add matychen
            $(divFormError).css({
                "top": calculatedPosition.callerTopPosition,
                "left": calculatedPosition.callerleftPosition,
                "marginTop": calculatedPosition.marginTopSize,
                "opacity": 0
            });

validationEngine.jquery.css里面加入以下代码:
.iframe {
	position: absolute; 
	width: expression(this.parentNode.offsetWidth+\'px\'); 
	height: expression(this.parentNode.offsetHeight-32+\'px\');
	z-index: -1;
	top: expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\');
	left: expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\');
}

这个我是仿照bgiframe_2.1.1得到的。
0 请登录后投票
   发表时间:2010-09-14  
怎么实现在不为空的情况下,再验证。比如我现在要验证一个文本框是否为字母,可是当我什么都没有输入时,它也去验证。我觉得这个是一个缺陷,请问怎么解决,谢谢!
0 请登录后投票
   发表时间:2010-09-15  
您觉得修改了,效果会比原来的更好吗?
0 请登录后投票
   发表时间:2010-09-28  
bluespring 写道
rendong 写道
我也在一直使用这个验证组件,更改了错误显示方式,但是没有修改,当form在一个iframe中,边上没有足够的空间显示错误提示的问题。


这个我也没考虑过...

暂时可以通过配置提示位置来规避吧



我也遇到了这个问题,能不能把错误提示层提升到顶层窗口显示的,不过这样位置貌似比较难计算,最近在研读代码,感觉改起来很麻烦的样子。。。。
0 请登录后投票
   发表时间:2010-10-04  
wafj999 写道
验证身份证的规则怎么整合进去啊?之前的都是"regex":"/^[a-zA-Z\u4E00-\u9FA5]+[a-zA-Z0-9_\u4E00-\u9FA5]+$/",
这样就可以但是身份证的校验必须通过
//身份证正则表达式(15位)
isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
//身份证正则表达式(18位)
isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
地区、性别和身份证进行判断的正则表达式:
<script>
var
aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"

安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州"

,53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}

function cidInfo(sId){
var iSum=0
var info=""
if(!/^\d{17}(\d|x)$/i.test(sId))return false;
sId=sId.replace(/x$/i,"a");
if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地区";
sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
var d=new Date(sBirthday.replace(/-/g,"/"))
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日";
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
if(iSum%11!=1)return "Error:非法证号";
return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
}

这种来做
楼主知道怎么整合进去吗?




楼主 继续支持你啊,帮我们想想解决方案 或者 给个思路
0 请登录后投票
   发表时间:2010-10-05  
zxingdream 写道
wafj999 写道
验证身份证的规则怎么整合进去啊?之前的都是"regex":"/^[a-zA-Z\u4E00-\u9FA5]+[a-zA-Z0-9_\u4E00-\u9FA5]+$/",
这样就可以但是身份证的校验必须通过
//身份证正则表达式(15位)
isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
//身份证正则表达式(18位)
isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
地区、性别和身份证进行判断的正则表达式:
<script>
var
aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"

安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州"

,53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}

function cidInfo(sId){
var iSum=0
var info=""
if(!/^\d{17}(\d|x)$/i.test(sId))return false;
sId=sId.replace(/x$/i,"a");
if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地区";
sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
var d=new Date(sBirthday.replace(/-/g,"/"))
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日";
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
if(iSum%11!=1)return "Error:非法证号";
return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
}
这种来做
楼主知道怎么整合进去吗?

楼主 继续支持你啊,帮我们想想解决方案 或者 给个思路


这个我已经融合进去了,但错误信息不能显示我们函数里面的,除非alert();
在jquery.validationEngine-cn.js里找到$.validationEngineLanguage.allRules = {新添加代码:
"chkIDCard" :{
"nname" : "chkIDCard","alertText" : "* 请输入正确的身份证号."}

然后添加函数
function chkIDCard(){
var card=cidInfo(document.getElementById("idcard").value);
if(card!=true) return false;  
else return true;
}

调用的时候在class里这样调用:funcCall[chkIDCard]
但这样虽然可以用了 但是提示信息就固定了,呵呵 有待继续研究
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics