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中各种编码解码函数的区别和注意事项
Aug 19 Javascript
js中关于一个分号的崩溃示例
Nov 11 Javascript
用javascript删除当前行,添加行(示例代码)
Nov 25 Javascript
setTimeout()递归调用不加引号出错的解决方法
Sep 05 Javascript
使用Node.js配合Nginx实现高负载网络
Jun 28 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
Apr 29 Javascript
教你快速搭建Node.Js服务器的方法教程
Mar 30 Javascript
vue使用jsonp抓取qq音乐数据的方法
Jun 21 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
Aug 10 Javascript
浅谈js闭包理解
Apr 01 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
Jun 24 Javascript
vue实现百度语音合成的实例讲解
Oct 14 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
下载文件的点击数回填
2006/10/09 PHP
php 获取完整url地址
2008/12/20 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
2011/12/14 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
用JS提交参数创建form表单在FireFox中遇到的问题
2013/01/16 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
浅析创建javascript对象的方法
2016/05/13 Javascript
jquery实现网站列表切换效果的2种方法
2016/08/12 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
vue中的数据绑定原理的实现
2018/07/02 Javascript
vue使用原生js实现滚动页面跟踪导航高亮的示例代码
2018/10/25 Javascript
js实现随机8位验证码
2020/07/24 Javascript
vue中在vuex的actions中请求数据实例
2019/11/08 Javascript
Python代码的打包与发布详解
2014/07/30 Python
各个系统下的Python解释器相关安装方法
2015/10/12 Python
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
python实现websocket的客户端压力测试
2019/06/25 Python
利用python实现AR教程
2019/11/20 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
学生发电厂实习自我鉴定
2013/09/22 职场文书
群众路线教育实践活动方案
2014/02/02 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
民间借贷协议书范本
2014/10/01 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书
公司离职证明标准格式
2014/11/18 职场文书
新郎答谢词
2015/01/04 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis