Проблемы с проверкой jquery против пробелов - PullRequest
0 голосов
/ 31 августа 2010

У меня проблема с проверкой записей в форме с помощью jQuery и плагина Validation. Записи должны быть либо нулем, либо положительным числом. У меня не было проблем с методом обнаружения отрицательных чисел (или NaN), но у меня был какой-либо метод работы для обнаружения пустых записей или записей, в которых нет ничего, кроме пробелов.

Соответствующий код:

//WORKS
//require positive numbers/floats
$.validator.addMethod('requirePositiveNumber', function (value){
if ((isNaN(value)) || (value < 0) ){
    return false;
}else{
   return true;
}
     }, "Please enter a positive amount"
);

//DOES NOT WORK
//require no spaces
$.validator.addMethod("noSpace",function(value,element)
{
    return this.optional(element) || /^[.\d]+/i.test(value);
},"no spaces please");

//DOESNT WORK EITHER
$.validator.addMethod("noSpace", function(value, element){
        if (value.indexOf(" ") < 0 && value !=""){
            return true;
        }else{
            return false;
        }
    }, "please enter a positive amount"
    );

Ни один из тестов не выполняется только для пробелов.

1 Ответ

0 голосов
/ 31 августа 2010

Предполагая, что "myform" - это идентификатор вашей формы, а "myfield" - это имя вашего поля, это должно сработать:

"isPositiveNumber" jQuery validator rule:

$.validator.addMethod("isPositiveNumber", function(value, element) {
    return this.optional(element) || /^[0-9.]+$/i.test(value);
}, "Please enter a positive amount");

Сценарий проверки:

$("#myform").validate({
    rules: {
        myfield: { required: true, isPositiveNumber: true }
    },
    messages: {
        // Overwrite the default required message
        myfield: { required: 'Please enter a positive amount' }
    }
});

Использование встроенного правила required: true для поля остановит проверку поля, если оно пустое или просто набор пробелов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...