javascript - Magicsuggest 更改占位符文本

标签 javascript jquery html 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();
     }
});

我正在尝试在弹出窗口中添加第二个:

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(弹出窗口中的那个)的值时,它会更改另一个 Magicsuggest 的占位符,而所需的占位符保持不变。有没有一种方法可以更改一个占位符的值而不影响另一个占位符?

最佳答案

它从第一个可用的 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);

关于javascript - Magicsuggest 更改占位符文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43501474/

相关文章:

javascript - 从 HTTP 请求执行 JavaScript 函数

javascript - 对象解构 : how to use intermediate nested property

javascript - 根据地区返回不同的日期

javascript - 如何使用 this.form.submit() 通过 <select> <option> 表单发送值

html - 将 div 与图像悬停相关联

php - $.load 中的表单未正确发布

javascript - 按键时使用 Ember 操作第一个字符为空

javascript - 查询。当我的条件为真时,我们如何一步一步地多次显示相同的 div 而不是一次

javascript - JSON 和 JavaScript - 如何使用 json 读取我的列表

html - 由于位置 :relative, Bootstrap 网页已禁用输入