【发布时间】:2014-08-31 06:29:27
【问题描述】:
我有一个使用 jQuery 自动完成进行搜索的文本框。当我在文本框中输入内容时,它会显示未选择的建议。
我发现现在不支持 selectFirst: true。如果我在下拉列表中选择一个项目并按回车,它工作正常。
问题是如果用户输入 app for apple 并按下回车键,它会尝试使用 app 提交表单。表单只能使用下拉列表中的值之一提交。
我尝试禁用按 Enter 时提交的表单,以便我可以从 JavaScript 提交表单,但找不到解决方案。
这是我的代码:
$("#searchtext").autocomplete({
source: path + 'autocompletesearch?category=' + $("select[name='category'] option:selected").val(),
width: '500px',
matchContains: true,
select: function(event, ui){
$(".searchform").attr("action", path + "fullproductinfo/" + ui.item.id);
$("input[name='searchid']").val(ui.item.value);
$(".searchform").submit();
}
});
还有我的表格:
<form method="post" action="search" class="searchform">
<div class="searchdiv">
<input type="text" id="searchtext" name="searchtext"
placeholder="Search a product or a brand" autocomplete="off"/>
</div>
<div class="searchbutton">
<input type="button" name="btnsearchproduct" value="Search" />
</div>
<div class="clear"></div>
</form>
请注意,这里有<input type='button' 而不是“提交”,因此默认输入不应适用于表单。我猜是在提交时提交表单的自动完成功能。
【问题讨论】:
-
如果您希望
selectFirst选项起作用,您可以让第一个选项默认聚焦吗? -
是的,这样最好,但是 selectFirst 不起作用
标签: jquery autocomplete