Плагин проверки jQuery, использующий заголовок вместо указанного сообщения об ошибке - PullRequest
1 голос
/ 29 января 2012

Когда я пытаюсь создать метод, чтобы использовать методы, представленные в файле Additional-method.js, я получаю предполагаемую проверку.Однако, если пользователь вводит неправильное значение, вместо отображения исключения, определенного в файле additional-methods.js, он видит заголовок текущего элемента, который в настоящее время используется для подсказки типа.

MyJavaScript выглядит следующим образом:

  //setup input validation
                validator = form.validate({
                    rules: {
                        city: {
                            required: true,
                            lettersonly: true
                        }
                    }
                }); 

  $('input, textarea').blur(function(){
                    element = $(this);

                    // if the user gave no value then show the this field is required
                    if(element.val() == element.attr('title')){ 
                        refreshError(element, 'This field is required');
                    }else if(element.val() == '') {  //if the value is empty then check if it was required, also check if it had an input hint
                        //if the element is required display the error message
                        if(element.hasClass('required')){ 
                            refreshError(element, 'This field is required');
                        }

                        //if the title exists then we assume it is the input hint
                        if(element.attr('title') != ''){
                            element.val(element.attr('title'));
                            element.addClass('inputHint');
                        }
                    }else{
                        //if we got input validate it
                        response = element.valid();
                        //if we got an error clear the old one(conditional on existance), and display the new one. Otherwise clear any old error
                        if(!response){
                            this.defaultShowErrors();
                        }else{
                            errorId = element.attr('id')+'Error';
                            $('#'+errorId).remove();
                        }
                    }
                });

С соответствующей частью формы:

<label for="city">City:</label>
<input type="text" name="city" id="city" class="required inputHint" title="Your city here" />

Есть идеи, что я делаю неправильно?Я использую версию 1.9.0 плагина jQuery Validator

Примечание: я думал, что ударил по голове после прочтения: addMethod () плагина проверки jQueryошибка отображения атрибута заголовка , но после попытки:

                    //setup input validation
                validator = form.validate({
                    rules: {
                        city: {
                            required: true,
                            lettersonly: true
                        }
                    },
                    messages: {
                        city: {
                            lettersonly: "you must give a valid city"
                        }
                    }
                }); 

я обнаружил, что ничего не изменилось.

1 Ответ

1 голос
/ 14 января 2013

Я только что столкнулся с этой ошибкой и наткнулся на параметр ignoreTitle:

//setup input validation
validator = form.validate({
    ignoreTitle: true,
    rules: {
        city: {
            required: true,
            lettersonly: true
        }
    },
    messages: {
        city: {
            lettersonly: "you must give a valid city"
        }
    }
}); 
...