【问题标题】:JQUERY Autocomplete (disable click selection)JQUERY 自动完成(禁用点击选择)
【发布时间】:2016-07-28 00:58:19
【问题描述】:

大家好,

我使用简单的 JQUERY 自动完成来显示某些记录的可能重复项,例如用户填写文本字段时的姓名或地址。

这里是代码

<script type="text/javascript">
                $(function() {
                    var availableTags = <?php include('ajax/ajax_show.php'); ?>;
                    $("#name_value").autocomplete({
                        source: availableTags,
                        autoFocus:true
                    });
                });
            </script>

下面的文本字段是显示结果。

Name[____________________]
 Paul a
 Robert b
 Cid c

有没有办法禁用选择? 我喜欢只使用自动完成来显示记录,但用户无法单击以选择任何内容。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

您可能会让用户对这种安排感到困惑,因为每隔一次他开始在一个框中输入并出现一个列表时,该列表将是一个可供选择的选项列表。你正在改变规则,这并不能带来最好的用户体验。我会考虑重新考虑这一点。

也就是说,您可以通过在 select 选项中调用 preventDefault() 来做您想做的事情:

$("#name_value").autocomplete({
    source: availableTags,
    autoFocus:true,
    select: function(e, ui) {
        e.preventDefault();
    }
});

【讨论】:

  • 是的,也许用户会混淆你是对的。自动完成显示结果如下:Paul James - 123.123.123-12 但在文本输入中单击时我只需要发送名称,在本例中为 Paul James。有没有办法做到这一点?
  • 您可以使用 substr 删除 ` - ` (空格连字符空格)及其后面的所有内容,假设任何名称中都没有任何此类字符串。一个更强大的选择是将您的 source 更改为具有标签和值属性的对象数组: [ { label: "Choice1", value: "value1" }, ... ] 并仅将名称放入值中财产。如果您对此有疑问,请将其发布到新问题中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-02
  • 2018-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-29
相关资源
最近更新 更多