我有一个组合框,它有值,我想让用户在按下Enter
键时选择值。
Arrow
密钥Enter
键时选择值。我做了这个:
$('#cmb_CIMtrek_DailyshipCo_CustomerName select').bind('keypress', function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter keycode
//Do something
alert("Enter key Pressed");
}
});
但在按Enter
键时没有发出警报。
可能是什么问题以及如何解决?
最诚挚的问候。
答案 0 :(得分:8)
<select>
<option value="1">1</option>
<option value="2">2</option>
</select>
<script>
$('select').live('keypress',function(e){
var p = e.which;
if(p==13){
alert('enter was pressed');
}
});
</script>
答案 1 :(得分:2)
试试这个
$('#cmb_CIMtrek_DailyshipCo_CustomerName select').keypress(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == '13'){
alert('You pressed a "enter" key in textbox');
}
event.stopPropagation();
});
答案 2 :(得分:1)
如果您想在用户按Enter键时发布表单,您还可以使用提交按钮,默认情况下会出现此行为。
如果您不想发布表单但确实有提交按钮,则可能会捕获键事件而不会传播。所以删除任何提交按钮。
要将事件限制为对象使用:
if (e.target == document.getElementById('element-id'))
或jquery
if (this == $('#element-id').get(0))
您的代码看起来像这样:
$(document).bind('keypress', function(e)
{
// Use 'this' or 'e.target' (whithout quotes)
if (this == $('#cmb_CIMtrek_DailyshipCo_CustomerName select').get(0))
{
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13)
{ //Enter keycode
//Do something
alert("Enter key Pressed");
}
}
// Stop the event from triggering anything else
e.stopPropagation();
});
答案 3 :(得分:0)
例如:
<!html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<div class="form-group">
<label for="exampleFormControlSelect1">Bodega</label>
<select class="form-control" id="exampleFormControlSelect1">
<option value="despacho">Despacho</option>
<option value="ventas">Ventas</option>
</select>
</div>
<script>
$('#exampleFormControlSelect1').on('keypress',function(e){
var p = e.which;
if(p==13){
alert('enter was pressed');
}
});
</script>