如何跟踪用户在jQuery的下拉列表选项中输入的时间?

时间:2011-08-19 12:26:27

标签: jquery html forms

我有一个带有下拉列表的HTML表单。当用户通过箭头键选择一个选项并在其中一个下拉选项上按Enter键时,我想获得所选的下拉值

HTML code:

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

当用户选择Mercedes并按Enter键时,我想获得该值。我可以通过

获得这个价值
$('option').live('click',function(){

var text = $(this)

});

但是我想在按下enter

时得到它

5 个答案:

答案 0 :(得分:4)

Here是一个有效的例子。

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

正如oezi所说,您可能正在寻找更改事件,但如果您真的想要捕获输入按键,则可以使用此方法。

答案 1 :(得分:1)

以下是您的解决方案,请尝试

<!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>

答案 2 :(得分:0)

您正在寻找的是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

});

有关详细信息,请查看documentation

PS:您不应该将事件绑定到optionselect是表单元素,应该用于绑定事件。

编辑:live()添加了一个示例,感谢pyvi的提示。

答案 3 :(得分:0)

改变事件可能是去这里的正确方法。但是,如果您只需按Enter键就可以使用某些东西,这里有一个例子:

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

13是回车键的键码。

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

答案 4 :(得分:0)

我尝试了以下JQuery脚本,它可以与我一起工作。

$("#ddlName").keypress(function (e) {
    var key = e.which;

    if (key === 13)// the enter key code
    {
        // Handle enter key
    }
});