Поиск входных данных, значение имени которых присутствует в массиве объектов

#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() перед тем, как просмотреть массив ошибок?