【发布时间】:2026-01-09 01:25:03
【问题描述】:
在标准 Twitter TypeAhead 中,我有以下行为:
当用户开始输入时,会弹出建议,当他按 Enter 键时,他会被重定向到详细搜索页面,并将他输入的文本用作 url 参数 ?query=[text]。这是预期的,好的。
当用户在点击回车之前将鼠标放在建议上时,它会自动将此建议的标题放在 tt-query-input 中(不可见),当点击回车时,搜索查询是建议的标题而不是他输入的内容。 如何避免这种行为?
我添加了此代码以在单击 Enter 时重定向(其中 txtQuery 是我添加到类 'typeahead tt-query:
$('#txtQuery').bind("enterKey", function (e) {
var url = '/?query=' + $('#txtQuery').val();
window.location.href = url;
});
$('#txtQuery').keyup(function (e) {
if (e.keyCode == 13) {
$(this).trigger("enterKey");
}
});
【问题讨论】:
-
我不确定这是否是“标准 tt”行为。你试过什么?代码?
-
我添加了在点击输入时重定向的代码。其余的都是标准 tt 版本 0.9.3
-
在预先输入中,按下回车键应该选择光标下的值并触发 enterKey 事件。从可用性的角度来看,这对我来说似乎是正常的行为 - 我看到提供的内容并按 Enter 让输入框保留光标下的内容。我想知道你的理由是为什么要改变它。
-
这正是我想要避免的。当鼠标位于(或曾经)建议上方时按 Enter 不应将该建议的标题放在输入中。这些建议是指向页面的链接,点击它们会将用户引导到那里。当这些建议不是用户正在寻找的内容时,输入应该会引导他进入一个更详细的页面,其中包含他输入的搜索查询。