Не могу поймать или подавить кнопку ENTER в автозаполнении - PullRequest
0 голосов
/ 07 марта 2012

Я новичок в jquery и автозаполнении, и пытаюсь изучить их.Следующее работает, как я ожидаю, за исключением случаев, когда кто-то что-то печатает и нажимает ENTERЗатем текстовое поле становится пустым.Как мне это подавить?Я хотел бы, чтобы это вызвало одно из существующих событий - выберите или измените.Спасибо,

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Demo</title>
    <style>
      a.test { font-weight: bold; }
    </style>
  </head>
  <body>
    <link rel="stylesheet" type="text/css" href="css/ui-lightness/jquery-ui-1.8.18.custom.css">
    <link rel="stylesheet" type="text/css" href="css/autocomplete.css">
    <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" src="js/jquery-ui-1.8.18.custom.min.js"></script>
    <script>
      $(document).ready(function(){

            //attach autocomplete
            $("#suggest4").autocomplete({

                    //define callback to format results
                    source: function(req, add){

                            //pass request to server
                            $.getJSON("friends.php?callback=?", req, function(data) {

                                    //create array for response objects
                                    var suggestions = [];

                                    //process response
                                    $.each(data, function(i, val){
                                    suggestions.push(val.name);
                            });

                            //pass array to callback
                            add(suggestions);
                    });
            },

            //define select handler
            select: function(e, ui) {
                $("#spill").html("change "+ui.item.value+" "+e.type);
            },

            //define select handler

            change: function(e) {
                $("#spill").html("change "+$(this).val()+e.type);
            }

          });
      });
    </script>
    <div id="content">
      <form>
        <p>
          <label>Multiple Birds (local):</label>
          <input type="text" id="suggest4"></input>
        </p>
      </form>
    </div>
    <div id="spill">
    </div>
  </body>
</html>

1 Ответ

0 голосов
/ 07 марта 2012

Вам необходимо выполнить привязку к событию нажатия клавиши, найти ввод, а затем сделать то, что вы хотите:

$('#suggest4').keypress(function(e) {
     //catch only enter
     if(e.keyCode == 13) {
       e.preventDefault(); 
       //put your stuff in here
     }
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...