jQuery проверяет отображаемое имя showerrors

#jquery #validation #errorplacement

#jquery #проверка #ошибка размещения

Вопрос:

Я хотел бы добавить название ошибок в свою функцию, чтобы пользователи знали, какие поля они должны проверять.

Это моя текущая функция:

 showErrors: function(errorMap, errorList) {
            var summary = "Please check following errors:";
            $.each(errorList, function() {
                summary  = " * "   this.message   "<br>" ;
            });
            $('.errorbox').html(summary);
            this.defaultShowErrors();
        },
        submitHandler: function() {
            alert("submitted!");
        }
    });
  

Как я могу это сделать?

Комментарии:

1. Я понятия не имел, что я должен был пометить как решаемый. Спасибо, что дали мне знать! Скрипка, которую мансуУК сделал в предыдущем вопросе, показывает, как она реализована сейчас. jsfiddle.net/manseuk/xTdYr/2

Ответ №1:

Поскольку вы используете сопротивление низких частот.без плагина проверки, самый простой вариант для вас — добавить дружественное сообщение об указании к title параметру для каждого элемента управления вводом. Затем это сообщение будет использовано в качестве текста инструкции в появившемся сообщении об ошибке. Вот обновленная скрипка, показывающая, как это работает:http://jsfiddle.net/xTdYr/3 /

Кроме того, вы можете вручную добавить правила при вызове экземпляра .validate() метода с помощью messages параметра, подробности здесь:http://docs.jquery.com/Plugins/Validation/rules

Комментарии:

1. Рекомендуемые. Если это невозможно, вы могли бы использовать атрибут name, например summary = " * " this.element.name ": " this.message "n";

2. Форма обрабатывается на разных языках, поэтому использование сообщений — не лучший вариант, поскольку я загружаю стандартные сообщения из разных языковых файлов. Таким образом, обратная связь об ошибке выглядит точно так же. Действительно ли нет возможности добавить значение имени в сообщение обратной связи?

3. Ответ Марко сработал для меня. Спасибо за другие предложения, люди.

Ответ №2:

Расширьте параметры с messages: {name:"name error"}

Живая демонстрация:http://jsfiddle.net/gsBTC /

 $('#newform').validate({
    errorPlacement: function(error, element) {
        if (element.is(":radio")) {
            error.prependTo(element.parent());
        }
        else { // This is the default behavior of the script  
            error.insertAfter(element);
            console.log('here');
        }
    },
    showErrors: function(errorMap, errorList) {
        var summary = "You have the following errors: n";
        $.each(errorList, function() {
            summary  = " * "   this.message   "n";
        });
        $('#errordiv').html(summary);
        this.defaultShowErrors();
    },
    submitHandler: function() {
        alert("submitted!");
    }, 
    messages: {
     name   : "name error", 
     subject: "subject error",
     message: "message error"
   }
});
  

Комментарии:

1. Проблема в том, что форма многоязычная. Итак, я использую языковые файлы для разных языков. Я мог бы добавить определенное сообщение для каждого элемента, но у меня есть 70 элементов на 3 разных языках. Это много сообщений. Поэтому я предпочитаю использовать общие сообщения на каждом языке и добавлять «имя», чтобы пользователь знал, какое поле не в порядке.