2017-04-19 8 views
2

私はMagicsuggestで数日間働いていて、Magicsuggestが単一の選択のように動作するようにプレースホルダテキストを変更しようとしています。Magicsuggest置き換えプレースホルダテキスト

私は最初のものを持っている:

HTML

<div style="padding:5px 10px;" data-bind="visible: availableOptions().length > 1"> 
    <div id="magicsuggest"></div> 
</div> 

はJavaScript

magicOChange = $('#magicsuggest').magicSuggest({ 
    data: availableOptions, 
    placeholder: function() { 
       $('.ms-sel-ctn input').attr("placeholder", SelectedN); 
    } 
}); 

$(magicOChange).on('selectionchange', function (e, m, sel) { 
    if (sel.length == 0) return; 
    for (i = 0; i < availableOptions.length; i++) { 
      if (typeof sel[0] != 'undefined') 
       if (availableOptions[i].name == sel[0].name) { 
         SelectedN(sel[0].name); 
         SelectedN2(sel[0].name); 
         break; 
       } 
    } 
    if (typeof sel[0] != 'undefined') { 
     magicOChange.collapse(); 
     this.clear(); 
    } 
}); 

そして、私はポップアップ内秒1を追加しようとしています:

HTML

<div class="modal-body"> 
    <div class="row"> 
     <div data-bind="visible: availableOptions().length > 1"> 
       <div id="magicsuggestM"></div> 
     </div> 
    </div> 
</div> 

はJavaScript

magicMChange = $('#magicsuggestM').magicSuggest({ 
    data: availableOptions, 
    placeholder: function() { 
       $('.ms-sel-ctn input').attr("placeholder", SelectedN2); 
    } 
}); 

$(magicMChange).on('selectionchange', function (e, m, sel) { 
    if (sel.length == 0) return; 
    for (i = 0; i < availableOptions.length; i++) { 
      if (typeof sel[0] != 'undefined') 
       if (availableOptions[i].name == sel[0].name) { 
         SelectedN2(sel[0].name); 
         break; 
       } 
    } 
    if (typeof sel[0] != 'undefined') { 
     magicMChange.collapse(); 
     this.clear(); 
    } 
}); 

しかし、私が二Magicsuggest(ポップアップから1)の値を変更しようとしているとき、それはのプレースホルダを変更するようです他のものと所望のものは同じままである。あるプレースホルダの値を他のプレースホルダに影響を与えずに変更する方法はありますか?

答えて

1

最初に利用可能なDOM要素からプレースホルダを取得します。プレースホルダでは、セレクタをクエンチする前に各要素のIDを追加します。だから、代わりに:への変更を

$('.ms-sel-ctn input').attr("placeholder", SelectedN); 

$('#magicsuggestv .ms-sel-ctn input').attr("placeholder", SelectedN); 

、代わりの:

$('.ms-sel-ctn input').attr("placeholder", SelectedN2); 

に変更し、それを:

$('#magicsuggestM .ms-sel-ctn input').attr("placeholder", SelectedN2); 
関連する問題