#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));