#jquery #validation
#jquery #проверка
Вопрос:
у меня есть следующее:
$('#qForm').validate({
rules: {
answerYesNo_1: { required:true } ,
answerYesNoText_1: { required: function(element) {
return $('#answerYesNo_1').val() == 'yes';
}
, isMoney: true },
answerYesNo_2: { required:true } ,
answerYesNoText_2: { required: function(element) {
return $('#answerYesNo_2').val() == 'yes';
}
, isMoney: true },
answerYesNo_3: { required:true } ,
answerYesNoText_3: { required: function(element) {
return $('#answerYesNo_3').val() == 'yes';
}
, isMoney: true },
answerYesNo_4: { required:true } ,
answerYesNoText_4: { required: function(element) {
return $('#answerYesNo_4').val() == 'yes';
}
, isMoney: true },
answerYesNo_5: { required:true } ,
answerYesNoText_5: { required: function(element) {
return $('#answerYesNo_5').val() == 'yes';
}
, isMoney: true }
},
...
jQuery.validator.addMethod("isMoney", function(value, element) {
alert(/^$?[0-9][0-9,]*(.d{1,2})?$|^$?[.]([d][d]?)$/.test(value));
return /^$?[0-9][0-9,]*(.d{1,2})?$|^$?[.]([d][d]?)$/.test(value);
});
Проблема, с которой я сталкиваюсь, заключается в том, что она игнорирует первую часть требуемой функции :
return $('#answerYesNo_1').val() == 'yes'
Скажем: я выбираю «нет» для answerYesNo_2, answerYesNo_3, answerYesNo_4, answerYesNo_5, я получу false для каждого из них. Если ответ отрицательный, он не должен переходить к проверке isMoney. Любая помощь?
Ответ №1:
попробуйте это:
$.validator.addMethod("isMoney", function (value, element) {
alert(/^$?[0-9][0-9,]*(.d{1,2})?$|^$?[.]([d][d]?)$/.test(value));
return /^$?[0-9][0-9,]*(.d{1,2})?$|^$?[.]([d][d]?)$/.test(value);
});
$.validator.addMethod(
'equalToParam',
function ( value, element, param ) {
return $.trim(value) == param;
},
'Do not match.'
);
$('#qForm').validate({
rules: {
answerYesNo_1: {
required: true,
equalToParam: 'yes'
},
answerYesNoText_1: {
required: true,
isMoney: true
},
answerYesNo_2: {
required: true
},
answerYesNoText_2: {
required: true,
equalToParam: 'yes'
isMoney: true
},
answerYesNo_3: {
required: true
},
answerYesNoText_3: {
required: true,
equalToParam: 'yes'
isMoney: true
},
answerYesNo_4: {
required: true
},
answerYesNoText_4: {
required: true,
equalToParam: 'yes'
isMoney: true
},
answerYesNo_5: {
required: true
},
answerYesNoText_5: {
required: true,
equalToParam: 'yes'
isMoney: true
}
},
В следующий раз или, если мой фрагмент кода не работает, сделайте демонстрацию http://jsfiddle.net / пожалуйста
Комментарии:
1. Это не работает. jsFiddle был добавлен сразу после исходного сообщения в разделе комментариев. Спасибо