jQuery validate+artdialog+jquery form实现弹出表单思路详解


Posted in Javascript onApril 18, 2016

功能描述:

在页面弹出一个form表单,ajax无刷新提交表单,表单需通过验证。

适用范围:

适用于在列表页面新增,修改记录。

需要加载的js文件:

jquery.min.js

artDialog.js

iframeTools.js

jquery.form.js

jquery.validate.js

实现思路:

在页面中将表单放到一个隐藏的容器中,用artdialog弹出该form并对form加上jqueryvalidate验证,提交采用jqueryform ajax提交,由于都是用现成的插件写作代码量很少。

<div id="g_cn" style="display:none;width:700px;">
<table id="base_info" class="tb_normal" width="96%">
<!-- 新闻内容 -->
<tr>
<td width=20% align="right" class="td_normal_title">花名:</td>
<td><input readonly onFocus="this.blur()" type="text" id="bHname" value=""></td>
<td width=20% align="right" class="td_normal_title">花名拼音:</td>
<td><input readonly onFocus="this.blur()" id="bSpell" type="text" value=""></td>
</tr>
<tr>
<td width=15% align="right" class="td_normal_title">姓名:</td>
<td><input readonly onFocus="this.blur()" id="bEmpName" type="text" value=""></td>
<td width=15% align="right" class="td_normal_title">性别:</td>
<td><input readonly onFocus="this.blur()" id="bH_sex" type="text" value=""></td>
</tr>
<tr>
<td width=15% align="right" class="td_normal_title">部门:</td>
<td><input readonly onFocus="this.blur()" id="bDept" type="text" value=""></td>
<td width=15% align="right" class="td_normal_title">职务:</td>
<td><input readonly onFocus="this.blur()" id="bPosition" type="text" value=""></td>
</tr>
<tr>
<td width=15% align="right" class="td_normal_title">申请时间:</td>
<td><input readonly onFocus="this.blur()" id="bRegTime" type="text" value=""></td>
<td width=15% align="right" class="td_normal_title">审核时间:</td>
<td><input readonly onFocus="this.blur()" id="bAuditTime" type="text" value=""></td>
</tr>
<tr>
<td width=15% align="right" class="td_normal_title">花名出处:</td>
<td><input readonly onFocus="this.blur()" id="bFrom" type="text" value=""></td>
<td width=15% align="right" class="td_normal_title">花名注释:</td>
<td><input readonly onFocus="this.blur()" id="bRemark" type="text" value=""></td>
</tr>
</table>
</div>
a
<script language="javascript" type="text/javascript">
//form验证
$.validator.addMethod('checkHname', function() {
var validate=false;
var hname = $("#r_c").val().replace(/\s/g,'').substr($("#r_c").val().length-2,2);
$.ajax({
url : "/mipdemo/app/hname/index.php?r=hname/checkHname",
data : { 'hname':hname, 'empid':$("#username").val() },
type : "get",
async : false,
cache : false,
timeout : 10000,
success : function(data) {
eval('var result ='+ data);
validate = result.pass;
strHnameValideResult = result.message;
if(validate === true || validate === 'true'){
$('#spell').val(result.pinyin);
$('#hname').val(hname);
}
}
});
return validate;
});
//form验证
$.validator.addMethod('checkUser', function() {
var validate=false;
var username = $("#username").val();
if(username != "0"){
validate = true;
}
return validate;
});
//form验证
$.validator.addMethod('checkSex', function() {
var validate=false;
$("input[name='h_sex']").each(function(){
if($(this).attr("checked")=="true"){
validate = true;
}
})
return validate;
});
$('#myForm').validate({
errorPlacement: function(error, element){
if(element.attr("name") != "h_sex"){
element.parent().find('label').remove();
}else{
element.parent().find('label.onError,label.onCorrect').remove();
}
element.parent().append(error.attr('class','onError'));
},
success: function(label){
label.removeClass("onCorrect").removeClass("onError");
label.addClass('onCorrect').text('');
},
onkeyup: true,
rules : {
r_a:{
min:1
},
r_b:{
required:true
},
r_c:{
required:true,
minlength:2,
maxlength:2,
checkHname:true
},
h_sex:{
required:true
}
},
messages : {
r_a:{
min:'作品类型必选'
} ,
r_b:{
required:'作品名称必填'
},
r_c:{
required:'花名必填',
minlength:"请输入2个中文",
maxlength:"请输入2个中文",
checkHname: '该花名已使用或不符合规则'
},
h_sex:{
required:"性别必选"
}
}
});
$(document).ready(function() {
var options = {
target: '#output2',
success: showResponse // post-submit callback
};
$('#myForm').ajaxForm(options);
var alt =null;
$("#List_ViewTable tr").click(function(){
var empid = $(this).find("input[type='checkbox']").val();
if(empid != ""){
$.ajax({
url : "/mipdemo/app/hname/index.php?r=hname/userInfo",
data : { 'empid':empid },
type : "get",
cache : false,
timeout : 10000,
success : function(data) {
var result = $.parseJSON(data);
$("#bHname").val(result.hname);
$("#bSpell").val(result.spell);
$("#bEmpName").val(result.EmpName);
$("#bH_sex").val(result.h_sex);
$("#bDept").val(result.deptName);
$("#bPosition").val(result.PositionName);
$("#bRegTime").val(result.regtime);
$("#bAuditTime").val(result.audit_time);
$("#bFrom").val(result.r_a + result.r_b);
$("#bRemark").val(result.r_d);
if(alt !=null){
alt.close();
}
alt=art.dialog({
title:'用户信息',
content: document.getElementById('g_cn'),
width:750,
button: [
{
name: '保存',
focus: true,
callback: function () {
$('#myForm').submit();
return false;
}
},
{
name: '关闭',
callback: function () {
}
}
]
});
}
});
}
});
function showResponse(data){
if(alt !=null){
alt.close();
}
if(data=='success'){
artDialog.alert('保存成功');
}else{
art.dialog.close();
artDialog.alert('保存失败');
}
}
});
</script>

以上所述是小编给大家介绍的jQuery validate+artdialog+jquery form实现弹出表单思路详解,希望对大家有所帮助!

Javascript 相关文章推荐
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
Dec 27 Javascript
js 验证身份证信息有效性
Mar 28 Javascript
jQuery的text()方法用法分析
Dec 20 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
Aug 27 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 jQuery
分享vue.js devtools遇到一系列问题
Oct 24 Javascript
vue 解决循环引用组件报错的问题
Sep 06 Javascript
详解React项目中碰到的IE问题
Mar 14 Javascript
vue请求本地自己编写的json文件的方法
Apr 25 Javascript
vue点击页面空白处实现保存功能
Nov 06 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
Apr 22 Javascript
Vue自定义铃声提示音组件的实现
Jan 22 Vue.js
JS中artdialog弹出框控件之提交表单思路详解
Apr 18 #Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
Apr 18 #Javascript
ArtEditor富文本编辑器增加表单提交功能
Apr 18 #Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
Apr 18 #Javascript
JS区分浏览器页面是刷新还是关闭
Apr 17 #Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
Apr 17 #Javascript
JS中取二维数组中最大值的方法汇总
Apr 17 #Javascript
You might like
生成静态页面的php函数,php爱好者站推荐
2007/03/19 PHP
PHP 数据库树的遍历方法
2009/02/06 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
2011/09/13 PHP
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
基于MySQL分区性能的详细介绍
2013/05/02 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
PHP常用的类封装小结【4个工具类】
2019/06/28 PHP
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
javascript替换已有元素replaceChild()使用介绍
2014/04/03 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
jQuery中:animated选择器用法实例
2014/12/29 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
Python解释执行原理分析
2014/08/22 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
Python Paramiko模块的安装与使用详解
2016/11/18 Python
python中如何使用朴素贝叶斯算法
2017/04/06 Python
django站点管理详解
2017/12/12 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
详解Python3中setuptools、Pip安装教程
2019/06/18 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
Shell如何接收变量输入
2016/08/06 面试题
学生会干部自我鉴定2014
2014/09/18 职场文书
西柏坡观后感
2015/06/08 职场文书
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
HDFS免重启挂载新磁盘
2022/04/06 Servers