我有两种形式:一种用于添加新用户,另一种用于用户数据修改。
表单基本相同,唯一的区别是当进行修改时,如果存在于数据库中,则不应检查用户名字段。
在Js文件中,我进行了字段验证。其中一个验证是检查数据库中是否已存在用户名。在修改中,不应考虑这一点。
这就是为什么我这么想,但它不起作用:
我用div id区分这两种形式。
(查看代码段add_user表单):
<div id="add_user">
<form action="{site_url()}admin/updateFrontUser" id="form_sample_2" class="form-horizontal" method="post">
(查看代码段edit_user表单):
<div id="edit_user">
<form action="{site_url()}admin/updateFrontUser" id="form_sample_2" class="form-horizontal" method="post">
然后:
(js文件摘要)
var algo = $('.add_user', form2);
form2.validate({
errorElement: 'span', //default input error message container
errorClass: 'help-inline', // default input error message class
focusInvalid: false, // do not focus the last invalid input
ignore: "",
rules: {
username: {
required: true,
minlength: 2,
maxlength: 15,
pattern: "[A-z](([\._\-][A-z0-9])|[A-z0-9])*[a-z0-9_]*",
remote: {
data: function(){
if (algo) {
url: '/admin/checkUsername';
type: 'POST';
};
}
}
},
它应该检查用户名是否存在的远程规则。该功能已经在我的admin.php中构建。在我提到修改之前,它之前有效。
所以要恢复,我该如何仅为新用户使用远程规则(我的意思是,使用添加表单时)?
答案 0 :(得分:0)
请尝试以下规则
$().ready(function() {
$("#id_frm").validate({
rules: {
"id_question": {
required: true
},
"id_number": {
required: function(){ return $('input:radio[name=id_question]:checked').val() == 'Yes' },
minlength: 10,
minlength: 10
},
"contact_method": {
required: function(){ return $('input:radio[name=id_question]:checked').val() == 'No' }
}
},
messages: {
"id_question": {
required: "Please choose if you have an ID or not."
},
"id_number": {
required: "Please Enter ID."
},
"contact_method": {
required: "Please choose a contact method."
}
},
});
});