2017-10-05 20 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 
    }); 
} 

をしかし、それはまだ、追加アイテム1を生成します。それを修正する方法
Screenshot

を?

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

@LaurIvan、申し訳ありませんが、残念ながら会社内のルールではできません –

答えて

0

、あなたはおそらくループのためにあなたに必要とされるよりも1つの多くの時間のためにそれをループしています

クラスproduct-detailingのすべての要素に追加されます。そのクラスには<div><select>があります。

それだけ <select>要素を対象とするよう

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

にあなたのセレクタを変更し

+0

ループパス1回の繰り返しのみ –

2

あなたのセレクタ

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

:あなたはこれをやってみることができます

:あなたのコードで

+0

ありがとうございました!愚かなエラーは=です) –

関連する問題