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 相关文章推荐
function, new function, new Function之间的区别
Mar 08 Javascript
用javascript实现点击链接弹出&quot;图片另存为&quot;而不是直接打开
Aug 15 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
Nov 29 Javascript
JavaScript实现列出数组中最长的连续数
Dec 29 Javascript
jquery实现动态改变div宽度和高度
May 08 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
Dec 04 Javascript
浅析jquery unbind()方法移除元素绑定的事件
May 24 Javascript
JavaScript中的this引用(推荐)
Aug 05 Javascript
js获取当前时间(昨天、今天、明天)
Nov 23 Javascript
原生javascript实现读写CSS样式的方法详解
Feb 20 Javascript
微信小程序实现图片上传功能
May 28 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
Jul 22 Javascript
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
摩卡咖啡
2021/03/03 咖啡文化
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
php中字符串和整数比较的操作方法
2019/06/06 PHP
动态加载iframe
2006/06/16 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
2013/01/23 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
2017/02/16 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
原生js检测页面加载完毕的实例
2018/09/11 Javascript
15分钟上手vue3.0(小结)
2020/05/20 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
python的re模块应用实例
2014/09/26 Python
零基础写python爬虫之urllib2使用指南
2014/11/05 Python
Python装饰器使用示例及实际应用例子
2015/03/06 Python
python的文件操作方法汇总
2017/11/10 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
python使用递归的方式建立二叉树
2019/07/03 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
使用CSS3在触屏上为按钮实现激活效果
2013/09/27 HTML / CSS
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
以太网Ethernet IEEE802.3
2013/08/05 面试题
python 模拟在天空中放风筝的示例代码
2021/04/21 Python