通用表单验证formvalidator 后端验证

写代码时日期时间格式的判断是常有的,挺有用的.收集一下

http://www.iteye.com/topic/30759

$bug = fixer::input('post')
->add('openedBy', $this->app->user->account)
->add('openedDate', $now)
->setDefault('project,story,task', 0)
->setDefault('openedBuild', '')
->setIF($this->post->assignedTo != '', 'assignedDate', $now)
->setIF($this->post->story != false, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story))
->specialChars('title,steps,keyword')
->cleanInt('product, module, severity')
->join('openedBuild', ',')
->remove('files, labels')
->get();
//手机号
validater::checkREG('13636478944', '/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/')

首先,是调用fixer这个类的input方法,它的参数post表示是从$_POST这个变量中获取数据。
紧接着的两行add(),是向数据中增加两个变量。然后后面的两行setDefault则是表示,当这个变量没有传值的时候,设成默认的值。
接下来是两行setIF。setIF共有三个参数,第一个是判断条件,后面两个分别是key和value。也就是当条件为true的时候,设置$key = $value。
下面的spechialchars则表示对这三个字段进行htmlspecialchars处理;cleanInt则将变量处理成int类型,join,则将openedBuild使用,连接起来。
最后,还需要把两个不需要的变量去掉,使用remove。
通过get方法就可以得到一个已经经过修改的完整的数据集合。这个集合已经可以准备入库了。让我们来看下数据是如何验证的。

 

不同的版本跟大小写字母有关,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

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

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

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

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

$("#xueli").formValidator({          
	onShow:"请选择你的学历",          
	onFocus:"学历必须选择",          
	onCorrect:"谢谢你的配合",          
	onempty:"谢谢你的配合",
	empty:true
}).inputValidator({         
	min:1,          
	onError: "你是不是忘记选择学历了!"      
}).defaultPassed();	

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

function dosubmit(){
    $('#form').submit();
}
$.formValidator.initConfig({formID:"form",mode:'autotip'});
如果某个控件triggerEvent是blur触发验证,点击获取验证码怎么触发
$("#mobile").formValidator({
	onshow:"请输入手机号码",
	onfocus:"手机的长度必须是11位",
	oncorrect:"手机合法"
}).inputValidator({
	min:11,
	max:11,
	onerror:"手机号码必须为11位,请确认"
}).regexValidator({
	regexp:"mobile",datatype:"enum",onerror:"手机的格式不正确"
});

$("#verifyBtn").click({ //点获取验证码验证手机
    $("#mobile").blur();
});
ajaxValidator({
    type : "get",
    url : "",
    data :"m=member&c=index&a=public_checknickname_ajax",
    datatype : "html",
    async:'false',
    success : function(data){
        if( data == "1" ) {
            return true;
        } else {
            return false;
        }
    },
    buttons: $("#dosubmit"),
    onerror : "昵称已经存在",
    onwait : "请稍候..."
})
 

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

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

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

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

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

 

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


调用场合
      1、有默认值,而且这个值是合法的情况下,可以调用。例如性别,你默认男,是合法的。
      2、当你编辑已经存在的记录时,很多默认值都是合法的,可以调用

$("#purchase_date").formValidator({
	triggerevent:"change",
    onshow:"请输入采购时间!",
    onfocus:"请输入采购时间",
    oncorrect:"输入正确"
}).functionValidator({fun:isDateTime});	
 二次前端验证拦截
$.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{
                    //alert("");
       $.formValidator.setFailState("Admin_unameTip", '短信验证码错误');
                    result = false;//禁止提交            
                }
            }
        });
        return result;
    }
});
ajax:Boolean, //提交服务器,默认true。 某个控件有ajaxValidator函数校验的时候,该参数决定哪些控件的值一起提交给服务器
defaultValue:Object|String, //为input、select、textarea控件设置默认值
$.formValidator.setFailState("Admin_unameTip", 'sdfs');
$.formValidator.setTipState($("#"+tipID).get(0), "onError", showmsg)
 
 
 
 
 
 
 
 
 
 
 
 
 
 

你可能感兴趣的:(html,PHP,.net,bbs)