Ошибка инициализации коммутатора при загрузке AJAX - PullRequest
0 голосов
/ 26 октября 2018

Я получаю сообщение об ошибке при инициализации флажков, загруженных с помощью Switchery.Обратите внимание, что флажки были загружены с использованием запроса AJAX

Uncaught TypeError: Невозможно прочитать свойство 'disabled' из неопределенного в Switchery.isDisabled (switchery.min.js: 1) в новом Switchery (switchery.min.js: 1) в HTMLInputElement.(: 3: 25) в Function.each (jquery.min.js: 2) в n.fn.init.each (jquery.min.js: 2) в: 1: 27

AJAX

$.ajax({
                url: '/admin/item/editReviewAndFinalSettings/{{ $item->id }}',
                type: "POST",
                data: {
                    'type':'{{ucfirst($_GET['type'])}}',
                    'item_group_id':'{{ $item->id }}',
                    'priceType[]':priceType,
                    'optionName[]':optionName,
                    'serviceName[]':serviceName,
                    'itemCodes[]':itemCodes,
                    'partnerCodesStock[]':partnerCodesStock,
                    'itemStockId[]':itemStockId,

                },
                success: function(response) {
                    $(".finalReviewStockContainer").html(response);
                    $(".new-switchery-stock").each(function(k,v) {
                        var elems = document.querySelector('.new-switchery-stock'+k);
                        var switchery = new Switchery(elems[0]);
                    });
                },
                fail: function() {
                    console.log("Error occurred while fetching review and final settings.");
                }
            });

Ответы [ 3 ]

0 голосов
/ 26 октября 2018

Для решения после успешного ответа ajax, поместите его так:

 $(document).find(".new-switchery-stock").each(function(k,v) {
      var elems = $(document).find('.new-switchery-stock'+k);
      var switchery = new Switchery(elems[0]);
 });

А затем проверьте его, если работает.

0 голосов
/ 26 октября 2018

Назначение каждому входному флажку уникального атрибута HTML-идентификатора перед его инициализацией с помощью функции Switchery решило мою проблему.

0 голосов
/ 26 октября 2018

Может быть, вам стоит использовать $ (document) .ready (function () {/ * ваши вещи здесь * /});

...