功能描述:
在页面弹出一个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实现弹出表单思路详解,希望对大家有所帮助!