jQuery validate+artdialog+jquery form实现弹出表单思路详解
功能描述:
在页面弹出一个form表单,ajax无刷新提交表单,表单需通过验证。
适用范围:
适用于在列表页面新增,修改记录。
需要加载的js文件:
jquery.min.js
artDialog.js
iframeTools.js
jquery.form.js
jquery.validate.js
实现思路:
在页面中将表单放到一个隐藏的容器中,用artdialog弹出该form并对form加上jqueryvalidate验证,提交采用jqueryformajax提交,由于都是用现成的插件写作代码量很少。
<divid="g_cn"style="display:none;width:700px;">
<tableid="base_info"class="tb_normal"width="96%">
<!--新闻内容-->
<tr>
<tdwidth=20%align="right"class="td_normal_title">花名:</td>
<td><inputreadonlyonFocus="this.blur()"type="text"id="bHname"value=""></td>
<tdwidth=20%align="right"class="td_normal_title">花名拼音:</td>
<td><inputreadonlyonFocus="this.blur()"id="bSpell"type="text"value=""></td>
</tr>
<tr>
<tdwidth=15%align="right"class="td_normal_title">姓名:</td>
<td><inputreadonlyonFocus="this.blur()"id="bEmpName"type="text"value=""></td>
<tdwidth=15%align="right"class="td_normal_title">性别:</td>
<td><inputreadonlyonFocus="this.blur()"id="bH_sex"type="text"value=""></td>
</tr>
<tr>
<tdwidth=15%align="right"class="td_normal_title">部门:</td>
<td><inputreadonlyonFocus="this.blur()"id="bDept"type="text"value=""></td>
<tdwidth=15%align="right"class="td_normal_title">职务:</td>
<td><inputreadonlyonFocus="this.blur()"id="bPosition"type="text"value=""></td>
</tr>
<tr>
<tdwidth=15%align="right"class="td_normal_title">申请时间:</td>
<td><inputreadonlyonFocus="this.blur()"id="bRegTime"type="text"value=""></td>
<tdwidth=15%align="right"class="td_normal_title">审核时间:</td>
<td><inputreadonlyonFocus="this.blur()"id="bAuditTime"type="text"value=""></td>
</tr>
<tr>
<tdwidth=15%align="right"class="td_normal_title">花名出处:</td>
<td><inputreadonlyonFocus="this.blur()"id="bFrom"type="text"value=""></td>
<tdwidth=15%align="right"class="td_normal_title">花名注释:</td>
<td><inputreadonlyonFocus="this.blur()"id="bRemark"type="text"value=""></td>
</tr>
</table>
</div>
a
<scriptlanguage="javascript"type="text/javascript">
//form验证
$.validator.addMethod('checkHname',function(){
varvalidate=false;
varhname=$("#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('varresult='+data);
validate=result.pass;
strHnameValideResult=result.message;
if(validate===true||validate==='true'){
$('#spell').val(result.pinyin);
$('#hname').val(hname);
}
}
});
returnvalidate;
});
//form验证
$.validator.addMethod('checkUser',function(){
varvalidate=false;
varusername=$("#username").val();
if(username!="0"){
validate=true;
}
returnvalidate;
});
//form验证
$.validator.addMethod('checkSex',function(){
varvalidate=false;
$("input[name='h_sex']").each(function(){
if($(this).attr("checked")=="true"){
validate=true;
}
})
returnvalidate;
});
$('#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(){
varoptions={
target:'#output2',
success:showResponse//post-submitcallback
};
$('#myForm').ajaxForm(options);
varalt=null;
$("#List_ViewTabletr").click(function(){
varempid=$(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){
varresult=$.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();
returnfalse;
}
},
{
name:'关闭',
callback:function(){
}
}
]
});
}
});
}
});
functionshowResponse(data){
if(alt!=null){
alt.close();
}
if(data=='success'){
artDialog.alert('保存成功');
}else{
art.dialog.close();
artDialog.alert('保存失败');
}
}
});
</script>
以上所述是小编给大家介绍的jQueryvalidate+artdialog+jqueryform实现弹出表单思路详解,希望对大家有所帮助!