在AJAX上加载Switchery初始化错误复选框

时间:2018-10-26 05:45:03

标签: javascript jquery switchery

初始化Switchery加载的复选框时出现错误。请注意,复选框已使用AJAX请求加载

  

未捕获的TypeError:无法读取未定义的属性“禁用”       在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 :(得分:0)

也许您应该使用$(document).ready(function(){/ *您在这里的东西* /});

答案 1 :(得分:0)

对于ajax成功响应后的解决方案,请这样填写

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

然后对其进行测试。

答案 2 :(得分:0)

为每个输入复选框分配一个唯一的HTML id属性,然后再使用Switchery函数对其进行初始化解决了我的问题。