博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery.validate和jquery.form配合实现验证表单后AJAX提交
阅读量:6048 次
发布时间:2019-06-20

本文共 5192 字,大约阅读时间需要 17 分钟。

基础代码其实很简单,之后一点一点扩充。最终代码写在最后。

表单:

//下拉列表空置验证之要项目的Value值是空的就认为是空值

javascript:

$(document).ready(function () {  $("#AddColumnsForm").validate({    submitHandler: function(form) {      $(form).ajaxSubmit();    }  });});

 

后面再加强一下,刷新下页面显示的数据 我用的是easyui

$(document).ready(function () {  $("#AddColumnsForm").validate({    submitHandler: function(form) {      $(form).ajaxSubmit({        success: function (result) {  //表单提交后更新页面显示的数据          $('#TreeTable').treegrid('reload');          var d = result.split(';');          ShowMsg(d[0], d[1], d[2]);        }      });    }  });});

 

然后在修改下错误信息显示位置,符合bootstrap样式 

$(document).ready(function () {  $("#AddColumnsForm").validate({    errorPlacement: function (error, element) {      element.next('span.help-block').remove();      element.after('' + error.text() + '');    }, success: function (label) {       //加上就好了,不加这段代码校验成功后错误信息不取消    }, submitHandler: function (form) {      $(form).ajaxSubmit({        success: function (result) {          $('#TreeTable').treegrid('reload');          var d = result.split(';');          ShowMsg(d[0], d[1], d[2]);        }      });    }  });

  

 之后增加bootstrap的校验样式 

$(document).ready(function () {  $("#AddColumnsForm").validate({    errorPlacement: function (error, element) {      element.next('span.help-block').remove();      element.after('' + error.text() + '');    }, success: function (label) {    }, highlight: function (element, errorClass, validClass) {      $(element).parent().addClass('has-error');    }, unhighlight: function (element, errorClass, validClass) {      $(element).parent().removeClass('has-error');    },  submitHandler: function (form) {      $(form).ajaxSubmit({        success: function (result) {          $('#TreeTable').treegrid('reload');          var d = result.split(';');          ShowMsg(d[0], d[1], d[2]);        }      });    }  });

 

 然后还有错误信息提示文字。

$(document).ready(function () {  $("#AddColumnsForm").validate({    errorPlacement: function (error, element) {      element.next('span.help-block').remove();      element.after('' + error.text() + '');    }, success: function (label) {    }, highlight: function (element, errorClass, validClass) {      $(element).parent().addClass('has-error');    }, unhighlight: function (element, errorClass, validClass) {      $(element).parent().removeClass('has-error');    }, messages: {      Name: "必须填写栏目名称。",      ColumnTypeId: "请选择栏目类型。",      UpColumnId: "必须选择上一级的栏目"    }, submitHandler: function (form) {      $(form).ajaxSubmit({        success: function (result) {          $('#TreeTable').treegrid('reload');          var d = result.split(';');          ShowMsg(d[0], d[1], d[2]);        }      });    }  });

 

最终是这样的

$(document).ready(function () {  $("#AddColumnsForm").validate({    errorPlacement: function (error, element) {      //出错后显示错误提示,使用bootstrap辅助文本 error是默认显示错误信息的lable,element是出错的文本框      element.next('span.help-block').remove();      element.after('' + error.text() + '');    }, success: function (label) {      //虽然里面没有操作,但是不加这行代码校验成功后错误提示文字不消失。    }, highlight: function (element, errorClass, validClass) {      //校验失败后增加bootstrap校验失败样式。      $(element).parent().addClass('has-error');    }, unhighlight: function (element, errorClass, validClass) {      //校验失败后去掉bootstrap校验失败样式。      $(element).parent().removeClass('has-error');    }, messages: {      //自定义错误提示文本      Name: "必须填写栏目名称。",      ColumnTypeId: "请选择栏目类型。",      UpColumnId: "必须选择上一级的栏目"    }, submitHandler: function (form) {      $(form).ajaxSubmit({        //表单提交成功后更新页面内容并弹出提示框的代码        success: function (result) {          $('#TreeTable').treegrid('reload');          var d = result.split(';');          ShowMsg(d[0], d[1], d[2]);        }      });    }  });

 


 

UPDATE in 2015年9月1日

后来我又改成这样的了,不是一个表单了,但是都差不多。

直接在上边设置表单验证默认值,这样有多个表单的时候不需要重新写了。

我把验证规则写到javascript里了,因为我发现直接把验证规则像一开始那样直接写到标签里有些不支持,比如number,不知道怎么回事,可能我的写法本身就不对吧,因为我在网上没查到过和我写的一样的,是MVC自带验证生成的方式,虽然MVC使用的也是jquery.validate进行表单验证,但是一个页面多个表单MVC自带的验证就不好用了。

jQuery.validator.setDefaults({  errorPlacement: function (error, element) {    element.next('span.help-block').remove();    element.after('' + error.text() + '');  }, success: function (label) {  }, highlight: function (element, errorClass, validClass) {    $(element).parent().addClass('has-error');  }, unhighlight: function (element, errorClass, validClass) {    $(element).parent().removeClass('has-error');  }});
$("#editDatafm").validate({  rules:{    Name: {      required:true    }, Order: {      required: true,      number: true    }  },  messages: {    Name: "必须填写字典数据名称。",    Order:{      number: "排序种子必须为整数。",      required: "必须填写排序种子。"    }  }, submitHandler: function (form) {    $(form).ajaxSubmit({      success: function (result) {        $('#EditDataDlg').dialog('close');        $('#rightTable').datagrid('reload');        var d = result.split(';');        ShowMsg(d[0], d[1], d[2]);      }    });  }});

 顺便,如果是在表单之外的按钮要提交表单的话必须用 $("#editDatafm").submit(); 如果使用 document.getElementById("").submit(); 的话会不经过验证直接提交,

转载于:https://www.cnblogs.com/ANPY/p/4759805.html

你可能感兴趣的文章
golang+es 爬取网易云音乐评论
查看>>
Math Constants
查看>>
Ajax.BeginForm的异步提交数据 简介
查看>>
Oracle 11g不能导出空表的三种解决方法
查看>>
Wordpress 文章添加副标题
查看>>
21 段实用便捷的 PHP 代码
查看>>
包子凑数
查看>>
CocosStudio文件解析工具CsdAnalysis
查看>>
python 网络通信编程之tcp套接字socket
查看>>
Sql语句批量更新数据(多表关联)
查看>>
设置密码到期的天数
查看>>
Matlab M文件“程序块”注释方法
查看>>
当当网首页——html代码
查看>>
使用JDBCTemplate实现与Spring结合,方法公用 ——共用实现类(BaseImpl)
查看>>
asp.net mvc 实战化项目之三板斧
查看>>
使用stream类型的Result实现Ajax
查看>>
自己重新编译VLFeat
查看>>
Scrapy简介
查看>>
在本地计算机无法启动world wide web Publishing 服务或者安装iis5无法启动iis默认网站...
查看>>
c#如何操作excel文件、Interior.ColorIndex 色彩列表
查看>>