jQuery validate+artdialog+jquery form実現ポップアップフォーム構想詳細

6328 ワード

機能の説明:
ページにformフォームがポップアップされ、ajaxはコミットフォームをリフレッシュせず、フォームは検証に合格する必要があります.
適用範囲:
リストページに追加、レコードの変更に適用します.
ロードするjsファイル:
jquery.min.js
artDialog.js
iframeTools.js
jquery.form.js
jquery.validate.js
実現構想:
ページにフォームを非表示のコンテナに配置し、artdialogでformをポップアップし、formにjqueryvalidate検証を加え、jqueryform ajaxでコミットします.既存のプラグインでコードを書く量が少ないためです.


a

//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('    ');
}
}
});

以上、編集者が紹介したjQuery validate+artdialog+jquery form実現ポップアップフォームの考え方を詳しく説明しましたが、皆さんの役に立つことを願っています.