【问题标题】:Can't show placeholder in select2.js after selection选择后无法在 select2.js 中显示占位符
【发布时间】:2014-09-06 00:11:12
【问题描述】:

使用 select2.js 检索绑定到隐藏输入的远程数据。

 <input type="hidden" id="departmentNameEntry"  style="width:300px"/>

我已经在初始化中设置了占位符:

$("#departmentNameEntry").select2({ placeholder: "搜索部门", 最小输入长度:2, 阿贾克斯:{ url: "处理程序/DeptNameSearch_handler.ashx", 缓存:假, 数据类型:'json', 类型:'GET', 数据:功能(术语,页面){ 返回 { departmentNameFragment: term // 搜索词输入到处理程序的查询字符串中 }; }, results: function (data, page) { // 将结果解析为 Select2 期望的格式。 返回{结果:数据}; } }, 格式结果:功能(项目){ 返回项目.文本; }, 格式选择:格式部门名称, formatNoMatches:函数(术语){ return '没有部门名称符合您的查询'; } });

但是一旦选择了一个项目,占位符就会变为空白。如何将其重置为原始字符串?我尝试将初始化代码放在一个单独的函数中并再次执行它,但没有任何乐趣。我看到回答的其他问题似乎特定于绑定到 SELECT。我做错了什么?

【问题讨论】:

  • 不确定你的意思。占位符应该变为空白,而应输入所选值。它只是一个占位符。
  • @basher:第一次加载页面时,用户可以看到带有占位符“搜索部门”的控件,因此他知道下一步该做什么。但是如果用户点击了退出,或者清除了页面上的控件来重新开始搜索操作,占位符是空白的,他的指令就会消失。是的,我可以在“搜索部门”控件上方放置一个标签,但我想如果可能的话,我会使用占位符。

标签: jquery-select2


【解决方案1】:

我的 RTFM 不够仔细。

formatSelection 选项要求您返回一个字符串,然后该字符串将显示在 select2 中以代替占位符文本。这是我的功能:

功能格式部门名称(部门){ $('#hfDepartmentID').val(dept.id); // 当用户从列表中选择时,将 id 放入输入中 $('#hfDepartmentName').val(dept.text); // 存储部门名称以备后用 DepartmentCurrentBossesGet(dept.id, dept.text); // 调用另一个函数 DepartmentBossHistoryGet(dept.id); // 调用另一个函数 $('.row4').show(); // 在页面上显示有用的数据 返回部门文本; // 返回部门名称,以便 select2 可以显示它 }

希望这对某人有所帮助。

【讨论】:

    猜你喜欢
    • 2013-10-27
    • 2016-10-04
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    相关资源
    最近更新 更多