`
hudeyong926
  • 浏览: 2034988 次
  • 来自: 武汉
社区版块
存档分类
最新评论

通用表单验证formvalidator4.1.3 后端验证

阅读更多

在使用formvalidator4.1.3 插件时  发现正常情况调用时没有问题的,但是我们的项目中需要把css  、js 之类的静态资源用单独的域名加载。那么问题就来了在 该插件中 有一段这样的程序

//读取主题对应的脚本
var scriptSrcArray = fv_scriptSrc.split('/');
var jsName = scriptSrcArray[scriptSrcArray.length - 1];
var themedir = fv_scriptSrc.replace(jsName, '');
$.ajax({async: false, type: "GET", url: themedir + "themes/" + settings.theme + "/js/theme.js", dataType: "script",
    error: function () {
        alert('当前皮肤加载出错,请确认皮肤【' + settings.theme + '】是否存在')
    }
});

这段代码会去请求加载皮肤的一个 theme.js 但是和当前访问的域名不一致 ,也就是跨域没法加载,删除这段代码,手动在页面上加入theme.js即可

<script src="http://domain.com/themes/Default/js/theme.js" type="text/javascript" charset="UTF-8"></script>

高版本Jquery支持,修改55行

if (typeof($.browser) == "undefined") { #增加Jquery高版本支持
    $.browser = $.support;
}
if ($.browser.msie) {

SingleTip bug修改123行

if(initConfig.mode == "SingleTip")
{
	//显示和保存提示信息
	$("#fv_content").html(showmsg);
	elem.Tooltip = showmsg;
	var tip = $("#"+elem.settings[0].tipID); //fix bug
	if(showclass!="onError"){tip.hide()}
}

formValidator4.1.3  ajax中文乱码bug

var value = escape(decodeURIComponent(data.substr(li_pos+1)));

改成

var value = decodeURIComponent(data.substr(li_pos+1));

 formValidator4.1.3 formvalidatorregex.js bug:

money : "/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/",
mobile:"^1[3-9]{1}[0-9]{9}$", //mobileregExp
ps_username:"^[\\u4E00-\\u9FA5\\uF900-\\uFA2D_\\w]+$" //中文、字母、数字 _

弹出提示内容(AlertTip):没有提示层,直接通过alert提示,可以用于兼容PC和wap端

不同的版本跟大小写字母有关,API用法也变了

initConfig增加theme 属性,表示皮肤名,theme 的值可取目录theme 下的文件夹名,默认是default,自定义验证的html样式 。打开皮肤目录下的对应style.css文件,把重名的样式名改掉,再把theme.js文件里对应的名字改过来。theme.js

$class$表示对应的样式名。可以省略,可以表示分别是:onShow、onFocus、onError、onCorrect。
$data$表示显示的内容。可以省略。

submitOnce 校验通过后,是否灰掉所有的提交按钮

debug: false,//如果你要调试代码,你可以设置debug为true,校验成功了,也不会提交表单。

defaultPassed 默认校验通过,显示onCorrect状态,配合empty:true

defaultValue为input、select、textarea控件设置默认值

mode:'AutoTip',自动创建<div id="XXTip"></div>

wideWord 是否把一个全角字符当做2个长度

刚打开页面的时候我不想显示onshow的状态,如何实现这种功能?[top]

onCorrect:"&nbsp;",  //不要文字,只要提示图片

errorFocus(默认: true)整个校验组校验失败的时候,第一个出错的控件是否获得焦点,empty:true

.ajaxValidator({
    type : "get",
    url : "",
    data :"m=member&c=index&a=public_checknickname_ajax",
    datatype : "html",
    async:'false',
    success : function(data){
          return true;
    },
    buttons: $("#dosubmit"),
    onError : "昵称已经存在",
    onWait : "请稍候..."
}).defaultPassed();
$("#ms").formValidator({onShowFixText:"",onShowText:"这家伙很懒,什么都没有留下。",ajax:true,defaultValue:"这家伙很懒,什么都没有留下。"}).inputValidator({min:20,onError:"你输入的描述长度不正确,请确认"});	

设置ajax:true,其他控件的值会作为参数传到ajaxValidator里面

http://www.test.com/public_checknickname_ajax?clientid=us&rand=1516460149809&us=maodong22&ms=1212&_=1516460146200

如何实现用<a href="javascript:dosubmit()">提交</a>来启用验证

function dosubmit(){
    $('#form').submit();
}
$.formValidator.initConfig({formID: "adminForm", mode: "AutoTip", submitOnce: true, ajaxPrompt : '有数据正在异步验证,请稍后提交'});
如果某个控件triggerEvent是blur触发验证,点击获取验证码怎么触发
$("#mobile").formValidator({
	onShow:"请输入手机号码",
	onFocus:"手机的长度必须是11位",
	onCorrect:"手机合法"
}).inputValidator({
	min:11,
	max:11,
	onError:"手机号码必须为11位,请确认"
}).regexValidator({
    regExp:"mobile",//regExp: ["tel", "mobile"],        
    dataType:"enum",
    onError:"手机/座机的格式不正确"
});
$("#password").formValidator({
    onShow: "",
    onFocus: "请输入密码",
    onCorrect: "&nbsp;",
    empty:true
}).inputValidator({
    min: 4,
    onError: "密码长度不能小于4位"
});
$("#repeatpwd").formValidator({
    onShow: "",
    onFocus: "请输入确认密码",
    onCorrect: "&nbsp;"
}).compareValidator({
    desID: "password",
    operateor: "=",
    onError: "两次输入密码不一致"
});
$("#verifyBtn").click({ //点获取验证码验证手机
    $("#mobile").blur();
});
 

得到某个控件验证结果 ,验证通过是true,不过是false,如手机号码验证正确是才发送短信验证码

var result = $.formValidator.isOneValid('mobile'); //id
if(result){
    sendSmsCode();
}

在同一个页面你可以拥有很多个校验组,你只需在提交的按钮那里调用,ajax提交

return jQuery.formValidator.pageIsValid('校验组号') ;

来完成多个组的校验,互不干扰。

在A条件下,某个控件是不检验的,在B条件下,这个控件又是检验的,如何实现

if(A条件){
    $("#sfzh").attr("disabled",true).unFormValidator(true); //解除校验
}else{
    $("#sfzh").attr("disabled",false).unFormValidator(false);//恢复校验
}

两个放一行怎么处理,设置同一个tipID

$("#purchase_date").formValidator({
    triggerevent:"change",
    onShow:"请输入采购时间!",
    onFocus:"请输入采购时间",
    onCorrect:"输入正确"
}).functionValidator({fun:isDateTime, onerror:'日期格式错误'});	
 二次前端验证拦截
$.formValidator.initConfig({
    formID: "registerForm",
    onSuccess: function(){
        var result;
        var mobile = $("#mobile").val();
        var code = $("#sms").val();
        $.ajax({
            type: 'POST',
            url: '/verify/check',
            async:false,
            data: {mobile: mobile, verify: code, type: 2},
            success: function (data) {
                if(data==1){
                    result= true; //pass
                }else{
                    $.formValidator.setFailState("Admin_unameTip", '短信验证码错误');
                    result = false;//禁止提交            
                }
            }
        });
        return result;
    }
});
手动显示控件的错误样式
$.formValidator.setFailState("categoryTip", '请选择店铺分类');
 大写字母验证
regExp:"letter_u",dataType:"enum",param:"g",onError:"订单标示为大写字母"

车牌验证

function anaCarNumber($carNumberString) {
    $license = strtoupper(str_replace(array('·','-',' '), '', $carNumberString));
    
    //京AL4T30
    $reg0 = "/^([京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼川贵云渝藏陕甘青宁新]{1})([A-Z]{1}[0-9a-zA-Z]{5})$/u";
    //京BF12345
    $reg1 = "/^([京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼川贵云渝藏陕甘青宁新]{1})([A-Z]{1}[0-9a-zA-Z]{6})$/u";
    //使014578
    $reg2 = "/^([使]{1})([0-9a-zA-Z]{6})$/u";
    //沪A0023领
    $reg2_2 = "/^([京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼川贵云渝藏陕甘青宁新]{1})([0-9a-zA-Z]{5})([挂警学领]{1})$/u";
    //粤ZF023港 粤ZF023澳
    $reg3 = "/^([粤]{1})([0-9a-zA-Z]{5})([港澳]{1})$/u";
    //无车牌
    $reg99 = "/^无车牌$/u";

    if (preg_match_all($reg99, $license, $match)) {
        $bk = ['it_is' => true, 'type' => 99, 'province' => '', 'middle_str' => $match[0][0], 'end_str' => ''];
    } elseif (preg_match_all($reg3, $license, $match)) {
        $bk = ['it_is' => true, 'type' => 3, 'province' => $match[1][0], 'middle_str' => $match[2][0], 'end_str' => $match[3][0]];
    } elseif (preg_match_all($reg2_2, $license, $match)) {
        $bk = ['it_is' => true, 'type' => 2, 'province' => $match[1][0], 'middle_str' => $match[2][0], 'end_str' => $match[3][0]];
    } elseif (preg_match_all($reg2, $license, $match)) {
        $bk = ['it_is' => true, 'type' => 2, 'province' => $match[1][0], 'middle_str' => $match[2][0], 'end_str' => ''];
    } elseif (preg_match_all($reg1, $license, $match)) {
        $bk = ['it_is' => true, 'type' => 1, 'province' => $match[1][0], 'middle_str' => $match[2][0], 'end_str' => ''];
    } elseif (preg_match_all($reg0, $license, $match)) {
        $bk = ['it_is' => true, 'type' => 0, 'province' => $match[1][0], 'middle_str' => $match[2][0], 'end_str' => ''];
    } else {
        $bk = ['it_is' => false, 'type' => -1, 'province' => '', 'middle_str' => '', 'end_str' => ''];
    }
    //return $bk;
    if ($bk['it_is'] == true) {
        return array(
            'type' => $bk['type'],
            'province' => $bk['province'],
            'number' => strtoupper($bk['middle_str']) . $bk['end_str'],
        );
    } else {
        return array(
            'type' => -1,
            'province' => '',
            'number' => $carNumberString,
        );
    }
}

js车牌验证

/**
 * 判断车牌号
 * 0 => ['name'=> '普通蓝牌', 'value'=>0, 'color'=>'蓝底白字', 'example'=>'京AL4T30'],
 1 => ['name'=> '新能源绿牌', 'value'=>1, 'color'=>'绿底黑字', 'example'=>'京BF12345'],
 2 => ['name'=> '使领馆黑牌', 'value'=>2, 'color'=>'黑底白字', 'example'=>'使014578, 沪A0023领'],
 3 => ['name'=> '港澳入境黑牌', 'value'=>3, 'color'=>'黑底白字', 'example'=>'粤ZF023港, 粤ZF023澳'],
 99 => ['name'=> '无车牌', 'value'=>99, 'color'=>'', 'example'=>'无车牌'],
  所有中文   [\u4e00-\u9fa5]
  使:\u4f7f
  领:\u9886
  粤: \u7ca4
  澳: \u6fb3
  港 :\u6e2f
 无车牌:\u65e0\u8f66\u724c
 * */
function checkFullCarNumber(fullstr) {
    //京AL4T30
    var reg0 = /^[\u4e00-\u9fa5][A-Z][A-Z0-9]{5}$/i;
    //京BF12345
    var reg1 = /^[\u4e00-\u9fa5][A-Z][A-Z0-9]{6}$/i;
    //使014578
    var reg2 = /^[\u4f7f][A-Z0-9]{6}$/i;
    //沪A0023领
    var reg2_2 = /^[\u4e00-\u9fa5][A-Z0-9]{5}[\u9886]$/i;
    //粤ZF023港 粤ZF023澳
    var reg3 = /^[\u7ca4][A-Z0-9]{5}[\u6fb3\u6e2f]$/i;
    //无车牌
    var reg99 = /^\u65e0\u8f66\u724c$/i;

    var fist = fullstr.substr(0, 1);
    var vstr = fullstr.substr(1, fullstr.length - 1);
    if (reg99.test(fullstr)) {
        return { it_is: true, type: 99, province: '', nopv: ''  };
    } else if (reg3.test(fullstr)) {
        return { it_is: true, type: 3, province: fist, nopv: vstr  };
    } else if (reg2_2.test(fullstr)) {
        return { it_is: true, type: 2, province: fist, nopv: vstr };
    } else if (reg2.test(fullstr)) {
        return { it_is: true, type: 2, province: fist, nopv: vstr };
    } else if (reg1.test(fullstr)) {
        return { it_is: true, type: 1, province: fist, nopv: vstr };
    } else if (reg0.test(fullstr)) {
        return { it_is: true, type: 0, province: fist, nopv: vstr };
    } else {
        return { it_is: false, type: -1, province: '', nopv: ''  };
    }
}

 

https://github.com/overtrue/validator.js
https://github.com/overtrue/validation

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • 大小: 4.3 KB
  • 大小: 7.6 KB
分享到:
评论

相关推荐

    jquery表单注册验证formvalidator4.1.3完整下载

    jQuery FormValidator 4.1.3提供了一套完善的表单验证解决方案,通过丰富的验证规则、自定义错误消息和异步验证等功能,使得表单验证变得更加简单和高效。无论是在简单的注册表单还是复杂的业务表单中,...

    formvalidator4.1.3下载地址

    在实际开发中,FormValidator 4.1.3可以通过简单的配置和自定义规则实现高度定制化,与后端接口无缝对接,实现前后端数据验证的一致性。同时,它还支持AJAX提交,使得表单验证和数据提交更加流畅。此外,...

    jQuery formValidator表单验证插件4.1.3提供下载

    jQuery formValidator表单验证插件,它是基于jQuery类库,实现了js脚本于页面html代码的分离。你可以划分多个校验组,每个组的校验都是互不影响。对一个表单对象,你只需要写一行代码就可以轻松实现无数种(理论上)...

    formValidator-4.1.3

    "formValidator-4.1.3" 是一个针对前端表单验证的JavaScript库,主要针对4.1.3版本进行了优化,并确保与之前的3.5版本保持向下兼容性。这个修改版旨在解决开发者在升级到新版本时面临的代码适配问题,避免因升级导致...

    jQuery表单验证formValidator3.5

    **jQuery表单验证formValidator3.5** 在Web开发中,表单验证是必不可少的一环,它确保用户输入的数据符合预设的规则,减少服务器端的处理负担,并提供更好的用户体验。jQuery formValidator3.5是一个强大的...

    formValidator-4.1.3.js

    很好用的表单验证插件,包含formValidator-4.1.3.js、formValidator-4.1.3.min.js、formValidatorRegex.js、jquery-1.4.4.min.js四个插件文件。

    jQueryFormValidator4.1.3Text项目下载(含简单图集)

    《jQueryFormValidator4.1.3Text:前端表单验证利器详解》 在网页开发中,用户输入的数据验证是必不可少的一环,确保数据的正确性和安全性。jQueryFormValidator4.1.3Text是一款基于jQuery的轻量级表单验证插件,它...

    formvalidator 表单验证插件汇总

    **formvalidator 表单验证插件汇总** 在Web开发中,表单验证是必不可少的一环,它确保用户输入的数据符合预设的规则,避免无效数据的提交,提高用户体验。`formvalidator`是一款强大的JavaScript表单验证插件,适用...

    表单验证、字段ajax验证 formValidator.1.7

    `formValidator.1.7`是一个流行的前端验证插件,它集成了多种验证规则和方法,使得开发者能够方便地为表单字段添加验证逻辑。该插件的特点包括: 1. **易用性**:通过简单的配置,可以快速为表单字段定义验证规则,...

    jQuery formValidator表单验证插件示例源码

    jQuery formValidator是一款强大的JavaScript表单验证插件,它基于jQuery库,用于在用户提交表单前验证输入数据的正确性和格式。这个插件提供了一系列灵活的验证规则和自定义选项,使得开发者能够轻松地实现复杂的...

    formvalidator 表单验证框架

    formvalidator 是一个强大的前端表单验证框架,专为开发者提供高效、灵活的表单数据验证解决方案。这个框架允许开发者在用户提交表单前检查输入的数据,确保数据的完整性和准确性,从而提高用户体验并减少服务器端的...

    jQuery formValidator表单验证

    jQuery formValidator是一款基于jQuery库的高效、灵活的表单验证插件,旨在帮助开发者轻松实现对用户输入数据的实时验证,提高用户体验并确保数据的准确性和完整性。它提供了丰富的验证规则,可以覆盖大部分常见的...

    jQuery formValidator表单验证插件

    **jQuery formValidator表单验证插件** 在网页开发中,表单验证是不可或缺的一部分,它确保用户输入的数据符合预设的规则,防止无效数据提交到服务器。jQuery formValidator是一款强大的前端验证插件,专为jQuery...

    jquery 表单插件 formvalidator

    **jQuery FormValidator 插件...总之,jQuery FormValidator 是一款强大的表单验证工具,通过灵活的配置和丰富的功能,可以为大型表单提供高效、用户友好的验证体验。正确使用此插件,可以显著提升你的Web应用质量。

    基于formValidator表单验证代码

    **基于formValidator的表单验证技术** 在网页开发中,表单验证是不可或缺的一部分,它确保用户输入的数据符合预设的规则,防止错误数据的提交,提高用户体验并减少服务器端的处理压力。`formValidator`是一款强大的...

    jQuery表单验证插件 formValidator2.2.4-修改样式版

    《jQuery表单验证插件 formValidator2.2.4 - 定制样式解析》 在Web开发中,表单验证是不可或缺的一部分,它确保用户输入的数据符合预设的规则,从而提高用户体验并减少服务器端的压力。jQuery formValidator2.2.4是...

    基于jquery框架,采用jQuery formValidator表单验证插件。

    基于jquery框架,采用jQuery formValidator表单验证插件。

    formvalidator

    "formvalidator"是一款用于前端表单...通过深入理解和熟练使用formvalidator4.1.3,开发者能够构建出高效、友好的表单验证系统,提高用户填写表单的效率,减少因数据问题引起的服务器错误,从而提升整个Web应用的质量。

Global site tag (gtag.js) - Google Analytics