当用户键入预先输入字段然后按Enter键时,将提交表单。这不是非常直观,因为用户不希望对表单进行总结,而是将自动完成结果插入到预先输入字段中。
我需要按以下方式在Enter上修改详细信息Typeahead行为:
不提交表格; 将建议菜单中的第一个自动完成项目插入到预先输入字段; 关闭Typeahead建议菜单。 浏览互联网后,我发现了以下内容:
$(document).on('keypress', '#typeahead', function(e) {
if(e.keyCode == 13) {
e.preventDefault();
var selectables = $('#typeahead').siblings(".tt-menu").find(".tt-selectable");
if (selectables.length > 0){
$(selectables[0]).trigger('click');
}
$('#typeahead').typeahead('close');
}
});
这几乎可行,但Typeahead建议菜单未关闭。
你能帮助我理解为什么$('#typeahead').typeahead('close');
不起作用吗?还是有一些更优雅的解决方案?