4

私は正常に動作するJQueryをいくつか持っています。すべてのオートコンプリート値が読み込まれ、それらをクリックすると、すべての検索を実行する searchdata.php が読み込まれます。これは機能します。

私が理解できないのは、ユーザーがオートコンプリート値を選択したくないと判断して代わりにEnterキーを押した場合、ヒット時に検索入力にある値に対してsearchdata.phpを実行するにはどうすればよいかということですページをリロードせずに入力しますか? bind と live を試しましたが、うまくいきません。

<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 に答える