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 相关文章推荐
javascript 操作文件 实现方法小结
Jul 02 Javascript
JavaScript中判断对象类型的几种方法总结
Nov 11 Javascript
使用CSS3的scale实现网页整体缩放
Mar 18 Javascript
关于input全选反选恶心的异常情况
Jul 24 Javascript
微信js-sdk界面操作接口用法示例
Oct 12 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
Feb 20 Javascript
浅谈angularjs中响应回车事件
Apr 24 Javascript
js判断输入框不能为空格或null值的实现方法
Mar 02 Javascript
axios发送post请求springMVC接收不到参数的解决方法
Mar 05 Javascript
解决vue跨域axios异步通信问题
Apr 17 Javascript
JS出现404错误原理及解决方案
Jul 01 Javascript
如何在Vue.JS中使用图标组件
Aug 04 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
PHP系统命令函数使用分析
2013/07/05 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
php实现 master-worker 守护多进程模式的实例代码
2019/07/20 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
菜单效果
2006/10/14 Javascript
JSQL  一个 web DB 的封装
2010/05/05 Javascript
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
php 修改密码实现代码
2017/05/24 Javascript
js微信分享实现代码
2020/10/11 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
VUE实现密码验证与提示功能
2019/10/18 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
Python函数中定义参数的四种方式
2014/11/30 Python
利用python如何处理nc数据详解
2018/05/23 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
python 操作excel表格的方法
2020/12/05 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
迪士尼法国在线商店:shopDisney FR
2020/12/03 全球购物
Linux开机引导的步骤是什么
2015/10/19 面试题
护理专业本科生自荐信
2013/10/01 职场文书
岗位说明书范文
2014/05/07 职场文书
工作一年自我鉴定
2019/06/20 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS