我有一些JQuery工作正常。它加载所有自动完成值,并在单击它们时加载searchdata.php,执行所有搜索。这很有效。
我无法弄清楚的是,如果用户决定他们不想选择自动完成值而是点击输入,我该如何让它对搜索中的值执行searchdata.php点击进入输入而不重新加载页面?我已经尝试过绑定和直播,无法让它工作。
<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>
答案 0 :(得分:7)
$("#search_input").keypress(function(e) {
if(e.keyCode == 13)
{
e.preventDefault();
sendSelected(this.value);
$(this).autocomplete('close');
}
});
答案 1 :(得分:3)
$("#search_input").on('keyup', function(event) {
if(event.which == 13) // event.which detect the code for keypress in jQuery
{
event.preventDefault();
sendSelected(this.value);
}
});
答案 2 :(得分:2)
你可以在动作中使用event.preventDefault()
并且它不会提交页面,你只需要确保在你需要时打开和关闭它