2017-10-05 56 views
0

的額外錯誤的項目我寫了一個函數來更新引導selectpicker函數創建selectpicker

function LoadProductDetailings() { 
    var productId = $(this).val(); 
    $('.product-detailing').find('option').remove(); 
    $.ajax({ 
     url: '@Url.Action("ProductDetailings", "Task")', 
     data: 'ProductId=' + productId, 
     success: function (response) { 
      var detailings = JSON.parse(response); 

      if (detailings != null) { 

       for (var i = 0; i < detailings.length; ++i) { 
        var det = detailings[i]; 
        $('.product-detailing').append('<option value="' + det.Id + '">' + det.Name + '</option>'); 
       } 

       $('.product-detailing').selectpicker("refresh"); 
      } 
     }, 
     error: function (response) { 
      alert('@Errors.ActionFailed'); 
     }, 
     timeout: 15000 
    }); 
} 

但它會產生一個再其它的項目:
Screenshot

如何解決呢?

+0

@LaurIvan,對不起,不幸的是,我不能通過我們公司的內在規則 –

回答

0

在代碼中,你可能循環它不是在您需要的循環1周更多的時間:

你可以試試這樣做:

for (var i = 0; i < detailings.length - 1; ++i) { 
    var det = detailings[i]; 
    $('.product-detailing').append('<option value="' + det.Id + '">' + det.Name + '</option>'); 
} 
+0

循環只傳遞1次迭代 –

2

你選擇

$('.product-detailing').append('<option...>');

附加到類別爲product-detailing的每個元素。您有該類別的<div><select>

您的選擇更改爲

$('select.product-detailing').append('<option...>');

,使其僅定位到<select>元素。

+0

非常感謝!愚蠢的錯誤是=) –