Флажок Jquery не проверяется

#jquery #ajax #json #checkbox

#jquery #ajax #json #флажок

Вопрос:

У меня есть функция с именем ‘getData’, которая содержит вызов ajax, который успешно возвращает мои данные (динамически созданный список фруктов) через json. У меня есть другая функция под названием ‘adfruit’, которая должна устанавливать флажок, когда пользователь нажимает кнопку, которая вводит текстовое значение в текстовое поле, и это значение НЕ соответствует ни одному из значений, содержащихся в моих данных json.

Например, если данные, возвращаемые из вызова ajax, имеют значение {‘orange’, ‘apple’, ‘pear’}, и пользователь нажимает кнопку, которая добавляет ‘banana’ в текстовое поле, мой флажок должен быть установлен.

Ниже то, что я пробовал до сих пор:

   function AddFruit(data) {
                     var fruit = $("#Fruit").val(); //the value of input text box that gets populated when a user clicks '#ButtonAdd' button.

                     $("#ButtonAdd").click(function() {
                     $.each(data, function (item) {
                   if ($('fruit:contains("   data[item]   ")'))
                        {
                          $("#Oldform").prop ("checked", false);
                        } else
                            {
                                $("#Oldform").prop ("checked", true);
                            }
                         });
                   });
              }

  getData().done(AddFruit); // when the ajax call is successfully completed, run the AddFruit function.
 

Комментарии:

1. пространство @AdamMerrifield здесь не имеет значения…

2. @AdamMerrifield — он соответствует своим пробелам между prop и (. Если он хочет это сделать именно так, я не против. Меня это тоже беспокоит, но у меня есть свои причуды, и это не добавляет к разговору. Возможно, ему будет легче читать. пожимание плечами

Ответ №1:

Вы забыли ; после вызова prop() .

Ответ №2:

Для поиска данных, возвращенных из вызова ajax, необходим цикл for с оператором break . Когда элемент в данных сопоставляется с введенным текстом, цикл for завершается.

 var ajaxData = null;

  function AddFruit(data){
            ajaxData = data;
                $("#Button").click(function(){
                 for (var i = 0; i < data.length; i  ){ 
                    if (data[i] == $("#Fruit").val())
                   {
                    //leave check box unchecked
                    break;
                    }
                    else{
                    //check check box
                    }
                 }
             });
          }