使用自动完成输入进行Jquery搜索
我有一些JQuery,它工作得很好。它加载所有的自动完成值,单击这些值后,它们将加载执行所有搜索的searchdata.php。这很有效 我不明白的是,如果用户决定不想选择一个自动完成值,而是按enter键,我如何让它在按enter键时对搜索输入中的值执行searchdata.php而不重新加载页面?我试过绑定和生存,但无法让它工作使用自动完成输入进行Jquery搜索,jquery,jquery-ui,Jquery,Jquery Ui,我有一些JQuery,它工作得很好。它加载所有的自动完成值,单击这些值后,它们将加载执行所有搜索的searchdata.php。这很有效 我不明白的是,如果用户决定不想选择一个自动完成值,而是按enter键,我如何让它在按enter键时对搜索输入中的值执行searchdata.php而不重新加载页面?我试过绑定和生存,但无法让它工作 <script type="text/javascript"> $(document).ready(function() { var availabl
<script type="text/javascript">
$(document).ready(function() {
var availableTags = <?php echo json_encode($findrow);?>;
$("#search_input").watermark("Begin Typing to Search");
$('#searchresultdata').append(sendSelected);
$("#search_input").autocomplete({
source: availableTags,
select: function(event, ui) {
sendSelected(ui.item.value);
}
});
function sendSelected(_val){
var search_input = _val;
if (search_input =='') search_input ='*';
var dataString = 'keyword='+search_input;
if (search_input.length > 2 || search_input=='*') {
$.ajax({
type: "GET",
url: "core/functions/searchdata.php",
data: dataString,
success: function(server_response) {
$('#searchresultdata').empty();
$('#searchresultdata').append(server_response);
$('span#category_title').html(search_input);
}
});
}
}
});
</script>
$(文档).ready(函数(){
var availableTags=;
$(“#搜索输入”)。水印(“开始键入以搜索”);
$(“#searchresultdata”).append(sendSelected);
$(“#搜索输入”)。自动完成({
资料来源:availableTags,
选择:功能(事件、用户界面){
sendSelected(ui.item.value);
}
});
函数sendSelected(_val){
var搜索\输入=\ val;
如果(搜索输入=“”)搜索输入=“”*”;
var dataString='关键字='+搜索输入;
if(search_input.length>2 || search_input=='*')){
$.ajax({
键入:“获取”,
url:“core/functions/searchdata.php”,
数据:dataString,
成功:功能(服务器响应){
$('#searchresultdata').empty();
$('searchresultdata')。追加(服务器响应);
$('span#category_title').html(搜索输入);
}
});
}
}
});
您可以在操作上使用event.preventDefault()
,它不会提交页面,您只需确保在需要时打开和关闭它即可
啊,谢谢,我只是试着去尝试,但是它包含在autocomplete语句中。有没有办法在他们按enter键时关闭自动完成框,这样它就不会覆盖我的结果?@K20GH当然有;请参阅我的编辑。添加
$(this).autocomplete('close')
以触发close方法。可能重复-same,但改用select事件(它们应具有相同的处理程序)
$("#search_input").keypress(function(e) {
if(e.keyCode == 13)
{
e.preventDefault();
sendSelected(this.value);
$(this).autocomplete('close');
}
});
$("#search_input").on('keyup', function(event) {
if(event.which == 13) // event.which detect the code for keypress in jQuery
{
event.preventDefault();
sendSelected(this.value);
}
});