当前位置: 首页 > 知识库问答 >
问题:

无法在select2中显示占位符。选择后的js

陈君之
2023-03-14

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

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

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

$("#departmentNameEntry").select2({
        placeholder: "Search for a department",
        minimumInputLength: 2,
        ajax: {
            url: "Handlers/DeptNameSearch_handler.ashx",
            cache: false,
            dataType: 'json',
            type: 'GET',
            data: function (term, page) {
                return {
                    departmentNameFragment: term // search term entered into querystring for handler
                };
            },
            results: function (data, page) { // parse the results into the format expected by Select2.
                return { results: data };
            }
        },
        formatResult: function (item) {
            return item.text;
        },
        formatSelection: formatDepartmentNames,
        formatNoMatches: function (term) {
            return 'no department name matches your query';
        }
    });

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

共有1个答案

西门振
2023-03-14

我没有足够靠近RTFM。

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

function formatDepartmentNames(dept) {
    $('#hfDepartmentID').val(dept.id);   // when user has selected from the list, put id in an input
    $('#hfDepartmentName').val(dept.text); // stash the dept name for later
    DepartmentCurrentBossesGet(dept.id, dept.text);  // call another function
    DepartmentBossHistoryGet(dept.id);  // call yet another function
    $('.row4').show();  // show useful data on the page
    return dept.text;   // return the dept name so select2 can display it
}

希望这对某人有所帮助。

 类似资料:
  • 我正在使用vuejs 2.0创建一个webapp。我使用以下代码创建了简单的选择输入: 我的Vue组件的

  • 问题内容: 我有一个很大的应用程序,其中包含许多下拉菜单。我不想修改我的数据以添加一个空白选项,并且我不想选择占位符。最好的方法是什么? 问题答案: 我们可以通过使用angular强大的指令系统来扩展基本html来轻松做到这一点。 这样,我们现在可以执行以下操作: 这将创建一个带有不可选择的占位符的选择框,其中显示“选择…” 如果我们想要一个自定义占位符,我们可以简单地做到这一点: 这将创建一个带

  • 问题内容: 好的,我确定这里有一个简单的设置错误,但我不是100%是错的。 因此,我尝试使用Select2 AJAX方法作为用户搜索数据库并选择结果的方式。通话本身返回了结果,但是不允许我从列表中选择答案。它似乎也不允许您在悬停或上/下箭头上“选择”它。因此,事不宜迟,这是我的代码: index.html select.js JSON回应 一切似乎都能正确输入,但是我无法真正选择答案并将其输入框中

  • 正在寻找设置下拉列表占位符的字体颜色的方法。当需要select id时,以下操作起作用: 但是,我不希望输入需要这些下拉列表。一旦我移除所需的标记,占位符字体就会变回黑色。 以下是我的下拉列表:

  • 问题内容: 我是Linux的新手。有没有办法查看gedit中的控制字符。我去了options-> preferences,我得到的就是查看文本文件行号的选项。是否需要安装任何插件才能看到相同的插件?我在Ubuntu 12.04 LTS上,其gedit版本为3.4.1。 问题答案: 有一个适用于Ubuntu 的 gedit-plugins 软件包。安装它,然后查看gedit首选项中的 Draw Sp

  • 问题内容: 我正在使用占位符进行文本输入,效果很好。但是我也想为我的选择框使用一个占位符。当然,我可以使用以下代码: 但是“选择您的选项”是黑色而不是浅灰色。因此,我的解决方案可能基于CSS。jQuery也很好。 这只会使下拉菜单中的选项变为灰色(因此,单击箭头后): 问题是:人们如何在选择框中创建占位符?但它已经得到回答,欢呼。 使用此方法会导致所选值始终为灰色(即使在选择实选项后): 问题答案