#javascript #jquery
#javascript #jquery
Вопрос:
Я отправляю форму с использованием jQuery 3 и AJAX следующим образом:
$("#send-question").on("submit", function (event) {
event.preventDefault();
$.post("api/questions", { content: "content" })
.done(function (data, status, xhr) {
console.log(data);
})
.fail(function (xhr, status, error) {
var errors = $.parseJSON(xhr.responseText);
$(this).find(":input[name]");
});
});
Объект errors представляет собой массив объектов, таких как:
{ flag="content", info="the content is required" }
Мне нужно найти все входные данные в форме, которые имеют атрибут name.
Затем для тех, имя которых соответствует флагу для одной ошибки в массиве, просто добавьте информацию через интервал после ввода:
input.parent().append("<span class='error'>" error.info "</span>");
Я просто не уверен, как найти, какие входные данные содержат ошибку в массиве.
Комментарии:
1. @WebKenth — это r8
Ответ №1:
Просмотрите каждую ошибку и найдите входные данные с именем содержимого. Может выглядеть примерно так
errors.forEach(function(element, index, array){
$('input[name="' element.flag '"]')
.parent()
.append("<span class='error'>" element.info "</span>");
})
Комментарии:
1. Я не могу этого сделать, потому что мне нужно добавить диапазон, если ошибка с флагом существует в массиве, но мне нужно удалить существующий диапазон, если ошибка с этим флагом больше не существует… Поэтому мне нужно синхронизировать вещи
2. $(‘span .error’).remove() перед тем, как просмотреть массив ошибок?