Добавление сообщений об ошибках в форму с помощью jQuery

#jquery #ajax #json

#jquery #ajax #json

Вопрос:

После отправки данных моей формы в jQuery я получаю обратно объект JSON. Когда форма недействительна, статус устанавливается в «ошибка», и добавляются сообщения там, где именно произошла ошибка.

Это мой ответ (извлеченный из консоли Firebug)

 "status":"error",
"messages":{
    "email":{
        "emailAddressInvalidFormat":"'asd' is no valid email address in the basic format local-part@hostname"
    }
 }
  

Вставка post, когда форма была действительной, работает отлично. Теперь я использую этот код для добавления сообщений об ошибках при сбое формы:

 $.each(data.messages, function(element, errors) {
    var ul = $("<ul>").attr("class", "errors");
    $.each(errors, function(name, message) {
        ul.append($("<li>").val(message));
    });

    $("#"   element).after(ul);
});
  

Я замечаю, что элемент и сообщение в порядке (проверено с помощью console.log() ). Я думаю, что это происходит неправильно из-за (второго) цикла, потому что в других местах этот аналогичный фрагмент кода работает нормально. Я уверен, что html не вставлен в DOM, я проверил это также с помощью Firebug.

Ответ №1:

метод val() используется для установки и извлечения информации из тегов формы. Используйте вместо него метод text():

ul.append($("<li>").text(message));