Поле подтверждения Jquery validate
Huy Guys,
Я пытаюсь использовать плагин проверки jQuery и указать, что одно поле требуется только тогда, когда 3 других поля пусты (не заполнены).
дело в том, что правило работает, но оно по-прежнему остается требующим поля даже при вводе значения на нем.
Спасибо.
Это мой код:
$("#ProspectDtlFrm").validate({
rules: {
prsptEmail: {
required: function(element) { return ( $("#prsptHomePhone").val() == '' && $("#prsptBusinessPhone").val() == '' && $("#prsptMobilePhone").val() =='') }
}
},
messages: {
prsptEmail: "Please enter your first name"
}
});
Ответы
Ответ 1
Вы можете использовать depends
:
$('#ProspectDtlFrm').validate({
rules: {
prsptEmail: {
required: {
depends: function(element) {
return ($('#prsptHomePhone').val() == '' &&
$('#prsptBusinessPhone').val() == '' &&
$('#prsptMobilePhone').val() == '');
}
}
}
},
messages: {
prsptEmail: 'Please enter your first name'
}
});
Ответ 2
Предложение depends
все еще поддерживается. Это версия 1.11.0pre:
normalizeRules: function(rules, element) {
// handle dependency check
$.each(rules, function(prop, val) {
// ignore rule when param is explicitly false, eg. required:false
if (val === false) {
delete rules[prop];
return;
}
if (val.param || val.depends) {
var keepRule = true;
switch (typeof val.depends) {
case "string":
keepRule = !!$(val.depends, element.form).length;
break;
case "function":
keepRule = val.depends.call(element, element);
break;
}
if (keepRule) {
rules[prop] = val.param !== undefined ? val.param : true;
} else {
delete rules[prop];
}
}
});
Как вы можете видеть, yo может выбирать между "строкой" и "функцией". Таким образом, вы можете использовать:
rules: {
input_name_here: {
required: {
depends: function(element) {
return $("#thickBoxId:checked").length;
//or whatever you need to check
}
}
}
}
или
rules:{
input_name_here:{
required: '#tickBoxId:checked'
}
}
Если вам нужно только проверить наличие чего-то проверенного.
Ответ 3
'зависит' похоже, что он больше не поддерживается, и их документы не обновлены.
Итак, в сценарии, в котором, если отмечено галочку "да", проверьте другое поле:
rules:{
'name value of area you want to validate':{
required: '#tickBoxId:checked'
}
}
Ответ 4
способ depends
работает.
rules: {
prsptEmail: {
required: {
depends: function(element){
if ($('#id-user').val() == '') {
return true;
} else {
return false;
}
}
}
},
},
messages: {
prsptEmail : {
required : "please signIn!",
}
},