ajaxValidator
概述
通过ajax到服务器上做数据校验
支持的控件类型
text(文本框)、file(文件选择器)、password(密码框)、textarea(多行编辑框)、select(选择框)
排错步骤
1、检查当前插件类库是否为最新版本
2、检查jQuery类库是否超过支持的最高版本(1.4.4)
3、检查URL路径是否正确,在服务端设置断点,看是否能执行到。
4、要一起提交给服务器的控件的formValidator函数里必须配置ajax:true
注意事项
1、在提交的时候,在URL后面自动追加clientID参数,表示触发校验的控件ID
2、在提交的时候,在URL后面自动追加rand参数,这个是个随机数,所以你不必再传递个当前时间戳
3、几乎所有的属性跟$.ajax()的属性一样,请参考$.ajax()函数的帮助
4、你的控件值不能直接串到url参数后面,这样是取不到值得,例如url:"你的网址.ashx?"+$("#控件ID").val()
选项
typeString
(默认: "GET") 属性名:请求的类型。 请求方式 ("POST" 或 "GET"), 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。
urlString
(默认: 当前页地址) 属性名:发送到的URL地址。 发送请求的地址。在服务器端,你可以通过name为clientid获取触发验证的控件ID名
dataTypeString
(默认: "html") 属性名:返回的数据类型。 xml、html、script、json、text
timeoutNumber
(默认: 999) 属性名:超时设置。 超时设置
dataObject,String
属性名:数据。
asyncBoolean
(默认: true) 属性名:是否异步发送。 是否以异步的方式发送
successFunction
属性名:成功时的回调函数。 你可以返回的类型有以下几种:
1、false。将显示onError信息到提示层上
2、true。将显示formValidator的onCorrect信息到提示层上
3、字符串。作用同false,返回的字符串将显示在提示层上
processDataObject,String
(默认: true) 属性名:是否转换为对象。 在默认的情况下,如果data选项传进的数据是一个对象而不是字符串,将会自动地被处理和转换成一个查询字符串
completeFunction
属性名:完成时的调用函数。 ajax请求结束的回调函数
beforeSendFunction
属性名:请求前时调用的函数。 ajax校验之前的回调函数,你可以返回true、false、字符串。如果返回字符串,表示校验失败,返回的信息当做错误信息显示出来。
buttonsString
属性名:你点提交的按钮(组)jQuery对象。 当你触发了ajax校验,在发送之前,buttons里对应的按钮(组)就会灰掉,一直等待服务器返回数据为止,就重新亮起来
errorFunction
属性名:失败时的回调函数。 失败时的回调函数
onWaitString
(默认: "正在等待服务器返回数据") 属性名:正在校验的提示。 已经发送,但是服务器还未返回数据时候的提示消息。
onErrorObject,String
(默认: "服务器校验没有通过") 属性名:校验没有通过的提示。 该参数的类型有2种
1、字符串。发生错误时候的提示消息。
2、函数。有两个参数,参数1:当前值 参数2:当前控件对象(dom)
示例
描述:
对用户名进行ajax校验
jQuery 代码:
$("#us").formValidator({onShow:"请输入用户名",onFocus:"用户名至少5个字符,最多10个字符",onCorrect:"该用户名可以注册"}).inputValidator({min:5,max:10,onError:"你输入的用户名非法,请确认"})
.ajaxValidator({
dataType : "html",
async : true,
url : "http://www.51gh.net/chkuser.aspx?act=ok",
success : function(data){
if( data.indexOf("此用户名可以注册!") > 0 ) return true;
return data;
},
buttons: $("#button"),
error: function(jqXHR, textStatus, errorThrown){alert("服务器没有返回数据,可能服务器忙,请重试"+errorThrown);},
onError : "该用户名不可用,请更换用户名",
onWait : "正在对用户名进行合法性校验,请稍候..."
})
我的demo: formvalidator使用总结