输入多个带标签但不自动完成的内容

2023-12-08

我有两个输入。

我希望两个输入具有相同的外观和感觉,如下所示:

enter image description here

第一个输入使用自动完成并允许用户选择术语列表=>我使用p:自动完成 (see 关于自动完成的 Primefaces 文档) 这个输入效果很好。

对于第二个输入,我希望有相同的显示,但没有任何自动完成功能:用户只需输入一个术语列表,根本没有自动完成功能。 我尝试使用假自动完成来返回用户给出的值,但它太慢,并且当用户退出输入时行为不正确。

欢迎任何想法。


快速浏览后自动完成的 PrimeFaces javascript 代码经过几个小时的试验,我想出了一个解决方案。它涉及重写bindKeyEvents并决定是否调用原始事件,添加对空格键的检测(“选择一个标签”),并在按下时添加标签并触发selectionEvent(如果使用ajax)。将以下代码放入您的页面或外部 javascript 文件中

   <script>
   //<![CDATA[

            if(PrimeFaces.widget.AutoComplete) {

                PrimeFaces.widget.AutoComplete = PrimeFaces.widget.AutoComplete.extend ( {

                    bindKeyEvents: function() {
                        if (this.input.attr('data-justTags')) { 

                            var $this = this;

                            this.input.on('keyup.autoComplete', function(e) {
                                var keyCode = $.ui.keyCode,
                                key = e.which;

                            }).on('keydown.autoComplete', function(e) {
                                var keyCode = $.ui.keyCode;

                                $this.suppressInput = false;
                                switch(e.which) {

                                    case keyCode.BACKSPACE:
                                        if ($this.cfg.multiple && !$this.input.val().length) {
                                            $this.removeItem(e, $(this).parent().prev());

                                            e.preventDefault();
                                        }
                                    break;

                                    case keyCode.SPACE:

                                        if($this.cfg.multiple) {
                                            var itemValue = $this.input.val();

                                            var itemDisplayMarkup = '<li data-token-value="' +itemValue + '"class="ui-autocomplete-token ui-state-active ui-corner-all ui-helper-hidden">';
                                            itemDisplayMarkup += '<span class="ui-autocomplete-token-icon ui-icon ui-icon-close" />';
                                            itemDisplayMarkup += '<span class="ui-autocomplete-token-label">' + itemValue + '</span></li>';

                                            $this.inputContainer.before(itemDisplayMarkup);
                                            $this.multiItemContainer.children('.ui-helper-hidden').fadeIn();
                                            $this.input.val('').focus();

                                            $this.hinput.append('<option value="' + itemValue + '" selected="selected"></option>');
                                            if($this.multiItemContainer.children('li.ui-autocomplete-token').length >= $this.cfg.selectLimit) {
                                                $this.input.css('display', 'none').blur();
                                                $this.disableDropdown();
                                            }

                                            $this.invokeItemSelectBehavior(e, itemValue);    
                                         }


                                    break;
                                };

                            });
                     } else {
                         //console.log("Original bindEvents");
                         this._super();
                     }
                }
            });
        }


   //]]>

    </script>

为了决定何时调用原始属性,我决定使用 passThrough 属性和data-justTags姓名。例如pt:data-justTags="true"(值并不重要,所以pt:data-justTags="false"pt:data-justTags="true")。一个小的 html 片段是:

<p:autoComplete pt:data-justTags="true" multiple="true" value="#{myBean.selectedValues}">

并且不要忘记添加xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"命名空间声明。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

输入多个带标签但不自动完成的内容 的相关文章

随机推荐

  • C 随机数生成(纯 C 代码,无库或函数)

    我需要用 C 语言生成一些随机数来测试和调试系统 该系统是一个定制硬件 SoC 功能有限 因此我只能使用基本的数学运算 不 我不能在 stdlib 或 math h 中使用随机数生成器 我需要自己写 那么有某种算法可以生成随机数吗 我知道一
  • 通过使用 htaccess 替换空格

    你好 我的 htaccess 中有这段代码
  • 通过正则表达式查找句子中的数字

    我需要一个正则表达式来查找句子中的所有数字 例如 我有3根香蕉和37个气球 我会得到 3 37 时间是20 00 我有7辆坦克 我会得到 20 00 7 将字符串拆分为 0 9 JAVA String numbers yourString
  • 如何同时编辑 ASP.NET ListView 控件中的所有行?

    我想知道如何立即将所有 ListView 行置于编辑模式 我并不是在寻找一次编辑每一行的传统行为 答案可以是 C 或 VB NET 另外 如果可能的话 请提供在编辑所有行后保存每行更改的任何示例代码 可能最简单的方法是仅使用 ListVie
  • Smartgwt selectitem键值问题

    我有一个SelectItem我通过一个填充Map具有此组合的列表网格字段内 所以很好 但是当我选择组合框中的任何项目而不是获取地图的描述或值时 会将键放入列表网格字段中 我怎样才能让我设置值而不是键 现在我尝试使用 AddChangeHan
  • 当 python 访问具有 None 值的二维列表时发出警告

    我想创建一个n npython 中的列表 其中大部分元素都用 None 初始化 然后我将在 for 循环中设置一些元素 但在该行中我将对角线元素设置为0 我得到了一个警告突出显示 j 在 PyCharm 中 说 意外类型 整数 整数 可能的
  • 无法在后台的 while 循环中发布异步任务的进度 - Android

    我想从 doInBackground 更新对话框的下载进度 我正在打印日志并发布进度 他们都没有工作 它最后更新对话框并最后一次打印所有日志值 private class DownloadEReport extends AsyncTask
  • 关键字“current_timestamp”附近的语法不正确 - 但仅限于一个数据库

    我有一个 SQL Server 2008 R2 实例 上面有多个数据库 我正在尝试在其中一个数据库 我们称之为 DB1 上运行表值函数 该函数将日期作为输入并返回相关信息表 我这样运行我的查询 SELECT FROM dbo getAllS
  • R 中的显式公式与符号导数

    我想评估某些函数的高阶导数f in R 我有两种可能性 Either I determine a general expression for f k the k th derivative of f which I can do in m
  • 64 位 Windows 上的注册表重定向

    我运行的是 64 位 Windows 并且我想创建注册表项HKCU Software Classes Wow6432Node CLSID myguid InprocServer32使用 C 我应该告诉它写入哪个注册表项 以便将其重定向到上面
  • 如何在 xslt 1.0 中求平方根

    我想在 xslt 文件中进行一些计算 并且需要在公式中进行一些平方根 有人可以指出是否可能以及如何实现吗 感谢磨坊 一个可以使用sqrt的模板 函数FXSL 一 在 XSLT 1 0 中
  • 使用内连接获取oracle中特定列值计数

    我通过加入两个表获得了一些列和值 Select tbl orderdetails category name tbl orderdetails branch name tbl ordermaster created date tbl ord
  • 有什么好的教程或书籍可以帮助您学习使用 PHP 进行信用卡处理? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找一本很好的教程或书籍来解释如何通过您网站上的表单处理客户的信用卡 我读过一些有关使用curl 的内容 但这不是完整的教程 我正在寻找一个课
  • 如何使用gracefulStop关闭所有grpc服务器流?

    我试图停止从服务器端连接到流服务器的所有客户端 其实我正在使用GracefulStop优雅地处理它的方法 我正在等os Interrupt在通道上发出信号以执行 gRPC 的正常停止 但它被卡住了server GracefulStop 当客
  • 如何屏蔽 URL 中的扩展名

    有没有办法使用 PHP 屏蔽我网站上页面的 URL 扩展名 例子 http home 子文件夹代替http home subfolder php 将以下内容放入网站根目录的 htaccess 文件中
  • Angular2注入的路由器未定义

    如果我将路由器从 angular router 注入到组件中然后使用它 我会收到一条错误消息 指出无法调用未定义的 navigatorByUrl 这是我使用路由器实例的组件 import Component OnInit from angu
  • Edittext 中显示多个光标

    我面临一个奇怪的问题 在我的编辑文本中 1 当用户输入任何内容时 我可以看到多个光标 2 即使用户正在输入内容 提示也可见 请参考截图 以下是布局 XML
  • 检查SQL Server中是否存在表

    我希望这是关于如何使用 SQL 语句检查 SQL Server 2000 2005 中表是否存在的最终讨论 这里有两种可能的方法 哪一种是标准 最佳方法 第一种方式 IF EXISTS SELECT 1 FROM INFORMATION S
  • 猫鼬 - 可能的循环依赖?

    我的 Express 应用程序中有以下猫鼬模型 dog js var mongoose require mongoose var dogSchema exports dogSchema mongoose Schema name type S
  • 输入多个带标签但不自动完成的内容

    我有两个输入 我希望两个输入具有相同的外观和感觉 如下所示 第一个输入使用自动完成并允许用户选择术语列表 gt 我使用p 自动完成 see 关于自动完成的 Primefaces 文档 这个输入效果很好 对于第二个输入 我希望有相同的显示 但