4

我有一些工作正常的 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>
4

3 回答 3

7
$("#search_input").keypress(function(e) {
  if(e.keyCode == 13)
     {
         e.preventDefault();
         sendSelected(this.value);
         $(this).autocomplete('close');
     }
});
于 2012-05-11T13:58:54.267 回答
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);
     }
});
于 2012-05-11T14:03:21.977 回答
2

您可以event.preventDefault()在操作上使用它并且不会提交页面,您只需要确保在需要时将其打开和关闭

http://api.jquery.com/event.preventDefault/

于 2012-05-11T14:00:25.467 回答