Как отследить, когда пользователь нажимает войти в опцию выпадающего списка с JQuery? - PullRequest
1 голос
/ 19 августа 2011

У меня есть HTML-форма с выпадающим списком.Я хочу получить выбранное раскрывающееся значение, когда пользователь выбирает параметр с помощью клавиш со стрелками и нажимает клавишу ввода на одном из раскрывающихся вариантов

HTML-код:

<select>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

Когда пользовательвыбирает Mercedes и нажимает ввод, я хочу получить это значение.Я могу получить это значение на

$('option').live('click',function(){

var text = $(this)

});

, но я хочу получить его, когда они нажимают клавишу enter

Ответы [ 4 ]

4 голосов
/ 19 августа 2011

Здесь - рабочий пример.

$('select').live('keypress',function(e){
    var key = e.which;
    if(key == 13)// the enter key code
        {
            // do your thing
        }
});

Как сказал oezi , вы можете искать событие изменения, но если вы действительно хотите захватить нажатие клавиши ввода, это способ сделать это.

1 голос
/ 19 августа 2011

Вот ваше решение, попробуйте

<!DOCTYPE html>
<html>
<head>

  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>


<select id="ddlDemo">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

<script>



$('#ddlDemo').keyup(function(event) {
if(event.which==13)
{
  var text = $(this).val();
  alert(text);
}

});

</script>



</body>
</html>
0 голосов
/ 19 августа 2011

Событие изменения, вероятно, правильный путь. Однако, если вам когда-нибудь нужно что-то работать только при нажатии Enter, вот пример:

$('select').live('keydown', function(e){
    if (e.keyCode == 13) {
        var text = $(this)
    }
});

13 - код клавиши для ввода.

http://jsfiddle.net/z9q8Z/2/

0 голосов
/ 19 августа 2011

вы ищете change -вент:

$('select').change(function(){

  var text = $(this).val();
  // whatever to do here

});

или, используя .live() (если это необходимо для вас):

$('select').live('change',function(){

  var text = $(this).val();
  // whatever to do here

});

для получения дополнительной информации посмотрите документацию .

PS: вы не должны связывать события с option s, select является элементом формы и должен бытьиспользуется для привязки событий.

РЕДАКТИРОВАТЬ: добавлен пример для live(), спасибо Pyvi за подсказку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...