Jquery.Form和jquery.validate 的使用
2017-11-14 16:30
337 查看
有些功能需要我们利用Ajax技术进行POST提交表单,这时候就需要用到jquery.Form,它有两种方式进行提交,AjaxForm和AjaxSubmit方式。
AjaxSubmit方式是以相应事件来通过Ajax方式提交表单,比如单击某个按钮触发该表单的提交
如:
BeforeSubmit参数用来在表单提交到Server之前验证其数据的合法性,如果提交之前执行的回调函数返回False,表单的提交将会终止。
在设置返回Json格式时,要设置Option中DataType格式如下
Form提交完成之后success方法将被执行,responseText和responseXML的值会被传进这个参数(这个要依赖于dataType的类型)
在设置返回XML格式时,要设置Option中DataType格式如下
Form提交完成之后success方法将被执行
在设置返回HTML格式时,要设置Option中DataType格式如下
Form提交完成之后success方法将被执行
jquery.validate使用
DictKey,DictContent:指需要验证的控件ID
submitHandler:指通过验证后运行的函数,里面写入表单要提交的函数,否则表单不会提交
(1)required:true必输字段
(2)email:true必须输入正确格式的电子邮件
(3)url:true必须输入正确格式的网址
(4)date:true必须输入正确格式的日期
(5)dateISO:true必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22只验证格式,不验证有效性
(6)number:true必须输入合法的数字(负数,小数)
(7)digits:true必须输入整数
(8)creditcard:必须输入合法的信用卡号
(9)equalTo:"#field"输入值必须和#field相同
(10)accept:输入拥有合法后缀名的字符串(上传文件的后缀)
(11)maxlength:5输入长度最多是5的字符串(汉字算一个字符)
(12)minlength:10输入长度最小是10的字符串(汉字算一个字符)
(13)rangelength:[5,10]输入长度必须介于5和10之间的字符串")(汉字算一个字符)
(14)equalLength:10输入长度必须是10
(14)range:[5,10]输入值必须介于5和10之间
(15)max:5输入值不能大于5
(16)min:10输入值不能小于10
Server端:
根据Server端返回的True,False来决定验证是否通过
如果不是submit提交按钮,比如单击某个按钮触发表单验证,这时表单验证可用如下方式
functionvalidateForm(){
//validate方法参数可选
return$("#form1").validate({
rules:{
},
messages:{
}
}).form();
}
functiondoSubmit(){
//dootherthings
//验证通过后提交
if(validateForm()){
form.submit()
//这边可以结合Jquery.Form进行AjaxSubmit方式异步提交
}
}
AjaxForm方式必须先绑定表单,它一般在$(document).ready(function(){}里定义,它能让表单不刷新页面的情况下POST到目标。
如:
$(document).ready(function(){
$("#UpdateForm").ajaxForm(function(){
Alert(“AjaxForm提交完成”)
});
}
AjaxSubmit方式是以相应事件来通过Ajax方式提交表单,比如单击某个按钮触发该表单的提交
如:
$(“#btnTest”).click(function(){
$("#UpdateForm").AjaxSubmit(function(){
Alert(“AjaxForm提交完成”)
});
})
一、参数说明
1)BeforeSubmit
BeforeSubmit参数用来在表单提交到Server之前验证其数据的合法性,如果提交之前执行的回调函数返回False,表单的提交将会终止。
2)Success
Success参数表单提交完成之后执行
二、API接口说明
1)FormSerialize
将表单序列化成查询串。这个方法将返回一个形如:name1=value1&name2=value2的字符串。
如:
varqueryString=$('#myFormId).formSerialize();
等效于varqueryString=$.param(formData)方法
这两个方法返回的值是相同的
2)fieldSerialize
将表单里的元素序列化成字符串。当你只需要将表单的部分元素序列化时可以用到这个方法。这个方法将返回一个形如:name1=value1&name2=value2的字符串。
varqueryString=$('#myFormId.specialFields').fieldSerialize();
specialFields是该元素的Class值
3)fieldValue
取出所有匹配要求的域的值,以数组形式返回。从0.91版本开始,这个方法始终返回一个数组。如果没有符合条件的域,这个数组将会是个空数组,否则它将会包含至少一个值。
varvalue=$('#myFormId':password').fieldValue();
alert('Thepasswordis:'+value[0]);
4)resetForm
通过调用表单元素的内在的DOM上的方法把表单重置成最初的状态。
$('#myFormId').resetForm();
5)clearForm
清空表单所有元素的值。这个方法将会清空所有的文本框,密码框,文本域里的值,去掉下拉列表所有被选中的项,让所有复选框和单选框里被选中的项不再选中。
$('#myFormId').clearForm();
6)clearFields
清空某个表单域的值。这个可以用在只需要清空表单里部分元素的值的情况。
$('#myFormId.specialFields').clearFields();
specialFields是该元素的Class值
三、Server端返回格式处理
1)Json格式
在设置返回Json格式时,要设置Option中DataType格式如下
dataType:'json',
JS验证成功到Server端代码:
if(ModelState.IsValid)
{
returnJson(new{a="a",b="b"});
}
Form提交完成之后success方法将被执行,responseText和responseXML的值会被传进这个参数(这个要依赖于dataType的类型)
success:function(responseText,statusText,xhr,$form){
alert(responseText.a);
}
2)XML格式
在设置返回XML格式时,要设置Option中DataType格式如下
dataType:'xml',
JS验证成功到Server端代码:
//返回一个XML类型
stringxmlString="<?xmlversion=\"1.0\"encoding=\"gb2312\"?><treeid=\"0\"><itemtext=\"北京欢迎你\"/></tree>";
returnthis.Content(xmlString,"text/xml");
Form提交完成之后success方法将被执行
success:function(responseText,statusText,xhr,$form){
alert(xhr.responseText)
}
3)HTML格式
在设置返回HTML格式时,要设置Option中DataType格式如下
dataType:‘HTML’,
JS验证成功到Server端代码:
stringhtmlString="<divstyle=\"background:red\">Test<div>";
returnContent(htmlString);
Form提交完成之后success方法将被执行
success:function(responseText,statusText,xhr,$form){
alert(responseText)
}
jquery.validate使用
一、使用Jquery.Validate进行验证方法
$(document).ready(function(){
$("#pageForm").validate({
rules:{
DictKey:{required:true,maxlength:10},
DictContent:{required:true,maxlength:10}
},
messages:{
DictKey:{required:"不能为空",maxlength:jQuery.format("不能超过{0}个字符")},
DictContent:{required:"不能为空",maxlength:jQuery.format("不能超过{0}个字符")}
},
submitHandler:function(form){
form.submit();
}
})
})
DictKey,DictContent:指需要验证的控件ID
submitHandler:指通过验证后运行的函数,里面写入表单要提交的函数,否则表单不会提交
二、列出常用默认验证规则
(1)required:true必输字段
(2)email:true必须输入正确格式的电子邮件
(3)url:true必须输入正确格式的网址
(4)date:true必须输入正确格式的日期
(5)dateISO:true必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22只验证格式,不验证有效性
(6)number:true必须输入合法的数字(负数,小数)
(7)digits:true必须输入整数
(8)creditcard:必须输入合法的信用卡号
(9)equalTo:"#field"输入值必须和#field相同
(10)accept:输入拥有合法后缀名的字符串(上传文件的后缀)
(11)maxlength:5输入长度最多是5的字符串(汉字算一个字符)
(12)minlength:10输入长度最小是10的字符串(汉字算一个字符)
(13)rangelength:[5,10]输入长度必须介于5和10之间的字符串")(汉字算一个字符)
(14)equalLength:10输入长度必须是10
(14)range:[5,10]输入值必须介于5和10之间
(15)max:5输入值不能大于5
(16)min:10输入值不能小于10
三、使用ajax方法验证输入值是否存在
当文本框输入值时,或改变输入值时会自动到Server去验证输入值是否在数据库中存在
JS代码如下:
DictKey:{required:true,maxlength:10,
remote:{//验证用户名是否存在
type:"POST",
url:'@Url.Content("~/Account/Test/")'//servlet
}
},
DictKey:{required:"不能为空",maxlength:jQuery.format("不能超过{0}个字符"),remote:"用户名已被注册"},
Server端:
[HttpPost]
publicJsonResultTest(stringDictKey)//DictKey即要验证控件的ID值
{
boolresult;
if(DictKey=="a")
{
result=true;
}
else
{
result=false;
}
returnJson(result);
}
根据Server端返回的True,False来决定验证是否通过
四、非submit按钮结合Jquery.Form进行提交
如果不是submit提交按钮,比如单击某个按钮触发表单验证,这时表单验证可用如下方式
functionvalidateForm(){
//validate方法参数可选
return$("#form1").validate({
rules:{
},
messages:{
}
}).form();
}
functiondoSubmit(){
//dootherthings
//验证通过后提交
if(validateForm()){
form.submit()
//这边可以结合Jquery.Form进行AjaxSubmit方式异步提交
$("#UpdateForm").AjaxSubmit(function(){
Alert(“AjaxForm提交完成”)
});
}
}
相关文章推荐
- JQuery - formvalidate使用案例
- Jquery.Form和jquery.validate 的使用
- Jquery.Form和jquery.validate 的使用
- Jquery.Form和jquery.validate 的使用
- 使用jquery validate+jquery.form实现输入验证以及注册成功提示
- jQuery.validator.addMethod自定义验证方法【在表单验证中的使用 $("#appEdit_Form").validate({rules : {},messages:{}】
- jquery.validate.js和jquery.form.js结合使用
- jquery.validate form 基本使用
- jQuery.form和jQuery.validate的使用
- jquery的validate.js 和 form.js 的使用方法
- 使用jquery的validate插件的注意点
- jquery序列化form表单使用ajax提交后处理返回的json数据
- jQuery.validate使用手册
- 使用jquery validate和ajax进行表单验证并向后台提交数据
- jQuery应用一之验证插件validate的使用
- jQuery验证空间jquery.validate.js使用说明+中文API
- jQuery验证控件jquery.validate.js使用说明及介绍
- jquery.form.js使用
- 使用jquery-form.js实现form表单的异步提交
- jquery结合CSS使用validate实现漂亮的验证