我正在使用bootstrap typeahead,我想知道,如何在单击enter按钮时提交它?换句话说,如果我输入“hello”到typeahead输入并按下回车,我将如何提交“你好”?
我已经这样做了,因为预先输入不会自动选择第一个结果。
这是我的代码:
<form method="POST" action="script.php">
<input name="typeahead_field" class="typeahead" data-provide="typeahead" autocomplete="off" type="text">
</form>
jQuery的:
$('.typeahead').typeahead({
items: 10,
source: function (query, process) {
$.ajax({
url: 'typeahead.php',
type: 'POST',
dataType: 'JSON',
data: 'query=' + query,
success: function(data) {
process(data);
}
});
},
highlighter: function(data) {
// code that returns each result
return html;
},
updater: function(data) {
// code that redirects the user if they click the selection
},
});
请帮忙!
答案 0 :(得分:1)
您需要一个提交按钮才能在输入时启用提交。您可以使用此CSS隐藏按钮:
<input type="submit" style="position: absolute; left: -9999px">
答案 1 :(得分:0)
老问题,但值得回答。这是一个可能的解决方案:
$('.typeahead').on('keydown', function(e) {
if (e.keyCode == 13) {
var ta = $(this).data('typeahead');
var val = ta.$menu.find('.active').data('value');
if (!val)
$('#your-form').submit();
}
}
编辑:第一次尝试非常天真:)
答案 2 :(得分:0)
效果很好,但不像鼠标悬停事件那样突出显示选择。也许这个解决方案会更好地工作,因为它似乎概括了先前答案的要点。 https://bwbecker.github.io/blog/2015/08/29/pain-with-twitter-typeahead-widget/