Ajax возвращает данные сравнения с данными текстового поля не работает? - PullRequest
0 голосов
/ 25 июня 2018

В данных возврата ajax он вернет запись пользователя, приведенную ниже: -

Array(6)
 0:{_id: 1, provider: "abc", time: null, email_id: "abc@gmail.com"}
 1:{_id: 2, provider: "abc", time: null, email_id: "abcd@gmail.com"}
 2:{_id: 3, provider: "abc", time: null, email_id: "abcde@gmail.com"}
 3:{_id: 4, provider: "xyz", time: null, email_id: "xyz@gmail.com"}
 4:{_id: 5, provider: "dea", time: null, email_id: "dea@gmail.com"}
 5:{_id: 6, provider: "bcmc", time: null, email_id: "bcmc@abc.com"}

Приведенные выше данные возвращаются ajax, и с помощью цикла я обрабатываю их и сравниваю с данными текстового поля, это возможно с условием if else, приведенным ниже: -

Код

value_field = $('#provider_field').val();
$.ajax({
        url:"/api/v1/provider",
        type: "GET",
        dataType: 'json',
        async: false,
        success: function(response){
            console.log(response.response)
            for (var i = 0; i < response.response.data.length; i++) {
            console.log(response.response.data[i].provider === value_field);
            if (response.response.data[i].provider === value_field){
                $('#search').append("<option value = "+response.response.data[i]._id+">"+response.response.data[i].provider+"</option>");
            counter = 1;
            }else{
                counter = 0;
                //here I want to remove
            }
        }
    }
});

HTML

<input type="text" name="provider_field" id="provider_field" value="" placeholder="Enter the Provider name">
<select id= "search">
</select>

Задача

  • если у элемента тот же поставщик, что и у value_field, я хотел бы добавить к #search. если это не соответствует ни одному провайдеру или неверному провайдеру, я хотел бы очистить опцию выбора.

Помогите мне решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 25 июня 2018
value_field = $('#provider_field').val();
$.ajax({
       url: "/api/v1/provider",
       type: "GET",
       dataType: 'json',
       async: false,
      success: function(response) {
               console.log(response.response)
               for (var i = 0; i < response.response.data.length; i++) {
                  console.log(response.response.data[i].provider === value_field);
                 if (response.response.data[i].provider === value_field) {
                       $('#search').append("<option value = " + response.response.data[i]._id + ">" + response.response.data[i].provider + "</option>");
                      counter = 1;
                } else {
                     counter = 0;
                    //here I want to remove
                   $("#search option[value='" + response.response.data[i]._id + "']").remove();
                   } // end of else
               }// end of id
          }// end of for
});// end of ajax
0 голосов
/ 25 июня 2018

Вы добавили в свой оператор break; , если проблема еще.

Просто удалите оператор break из оператора if else

Вы можете снять все опции при получении ответа от ajax, проверьте приведенный ниже код обновления.

$.ajax({
        url:"/api/v1/provider",
        type: "GET",
        dataType: 'json',
        async: false,
        success: function(response){
            console.log(response.response);
//Below line will clear all the previous options
            $('#search').find('option').remove();
            for (var i = 0; i < response.response.data.length; i++) {
            console.log(response.response.data[i].provider === value_field);
            if (response.response.data[i].provider === value_field){
                $('#search').append("<option value = "+response.response.data[i]._id+">"+response.response.data[i].provider+"</option>");

                //break;

            }
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...