如何使用jQuery跟踪用户在下拉列表选项上按enter键的时间?
我有一个带有下拉列表的HTML表单。当用户通过箭头键选择一个选项并按下其中一个下拉选项上的enter键时,我希望获得所选的下拉值 HTML代码:如何使用jQuery跟踪用户在下拉列表选项上按enter键的时间?,jquery,html,forms,Jquery,Html,Forms,我有一个带有下拉列表的HTML表单。当用户通过箭头键选择一个选项并按下其中一个下拉选项上的enter键时,我希望获得所选的下拉值 HTML代码: <select> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="mercedes">Mercedes</option> <
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
但我想在他们按下
enter
键时得到它,您要查找的是更改
-事件:
$('select').change(function(){
var text = $(this).val();
// whatever to do here
});
或者,使用.live()
(如果您需要):
有关更多信息,请查看
PS:您不应该将事件绑定到选项
s,选择
是表单元素,应该用于绑定上的事件
编辑:由于pyvi的提示,为
live()
添加了一个示例。您要查找的是更改
-事件:
$('select').change(function(){
var text = $(this).val();
// whatever to do here
});
或者,使用.live()
(如果您需要):
有关更多信息,请查看
PS:您不应该将事件绑定到选项
s,选择
是表单元素,应该用于绑定上的事件
编辑:由于pyvi的提示,为live()
添加了一个示例。是一个有效的示例
$('select').live('keypress',function(e){
var key = e.which;
if(key == 13)// the enter key code
{
// do your thing
}
});
如上所述,您可能正在查找更改事件,但如果您真的想捕获enter键,这就是一种方法。就是一个有效的示例
$('select').live('keypress',function(e){
var key = e.which;
if(key == 13)// the enter key code
{
// do your thing
}
});
如前所述,您可能正在寻找更改事件,但如果您真的想捕获enter键,这是一种方法。更改事件可能是正确的方法。但是,如果您只需要按enter键就可以使用某些功能,下面是一个示例:
$('select').live('keydown', function(e){
if (e.keyCode == 13) {
var text = $(this)
}
});
13是输入键的键代码
在这里,改变事件可能是正确的选择。但是,如果您只需要按enter键就可以使用某些功能,下面是一个示例:
$('select').live('keydown', function(e){
if (e.keyCode == 13) {
var text = $(this)
}
});
13是输入键的键代码
这是您的解决方案,请尝试
<!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>
沃尔沃汽车
萨博
梅赛德斯
奥迪
$('#ddlDemo').keyup(函数(事件){
if(event.which==13)
{
var text=$(this.val();
警报(文本);
}
});
这是您的解决方案,请尝试<!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>
沃尔沃汽车
萨博
梅赛德斯
奥迪
$('#ddlDemo').keyup(函数(事件){
if(event.which==13)
{
var text=$(this.val();
警报(文本);
}
});
我尝试了以下JQuery脚本,它对我有效
$("#ddlName").keypress(function (e) {
var key = e.which;
if (key === 13)// the enter key code
{
// Handle enter key
}
});
我尝试了下面的JQuery脚本,它对我很有效
$("#ddlName").keypress(function (e) {
var key = e.which;
if (key === 13)// the enter key code
{
// Handle enter key
}
});
因此,请看一下我提供的文档链接,并检查您的代码可能有什么问题-可能您在更改事件中的代码还有另一个问题。您如何处理
文本
?选择
或其选项
s上是否有任何其他事件会导致问题?您是否收到任何错误消息?更多的信息将非常有用…live功能几乎只需要更改为绑定“更改”,而不是“单击”。看看我给你的文档链接,看看你的代码可能有什么问题——也许你在变更事件中的代码还有另一个问题。您如何处理文本
?选择
或其选项
s上是否有任何其他事件会导致问题?您是否收到任何错误消息?更多的信息将非常有用…live功能几乎只需要更改为绑定“更改”,而不是“单击”。看来K.B Panamaldeniya littletipz根本不知道.change()
的存在,这似乎正是他想要的。我不认为我们应该引导他找到一个解决方案,这个方案(也许)可行,但可以用一个更好的方案来替代。我几乎失去了希望。幸运的是,我们看到了这个例子。干得好。谢谢。看起来K.B Panamaldeniya littletipz根本不知道.change()
的存在,这似乎正是他想要的。我不认为我们应该引导他找到一个解决方案,这个方案(也许)可行,但可以用一个更好的方案来替代。我几乎失去了希望。幸运的是,我们看到了这个例子。干得好。谢谢。-1正是gion_13在大约6分钟前写的内容(他使用了e.which
,这是由于跨浏览器兼容性而应该与jquery一起使用的内容:)-1正是gion_13在大约6分钟前写的内容(他使用了e.which
,这是由于跨浏览器兼容性而应该与jquery一起使用的内容:)