Javascript 检测模式对话框上的按键不工作
我想检测用户在显示模式时是否按下了任何键。我尝试了以下代码,但未触发事件 代码段:Javascript 检测模式对话框上的按键不工作,javascript,jquery,html,modal-dialog,Javascript,Jquery,Html,Modal Dialog,我想检测用户在显示模式时是否按下了任何键。我尝试了以下代码,但未触发事件 代码段: $("#modal_confirmation_dp_change").on('keydown keyup input', function ( e ) { alert(); }); 如果我尝试测试click事件,它将被触发 $("#modal_confirmation_dp_change").on('click', function ( e ) {
$("#modal_confirmation_dp_change").on('keydown keyup input', function ( e ) {
alert();
});
如果我尝试测试click事件,它将被触发
$("#modal_confirmation_dp_change").on('click', function ( e ) {
alert();
});
我正在使用twitter引导模式。我错过什么了吗 回答:
我找到了解决我问题的办法。似乎我不应该指向模式的id,以便检测按键事件。您不应该使用这样的多个事件,因为根据事件计数,它将触发三次,一次用于
按键下,一次用于按键上,另一次用于输入。这仍然不是问题,问题是您正在触发的单击。这是jQuery事件对象的事件,而您需要在DOM上触发单击
$(document).on('keydown keyup input click', function (e) {
if($('#modal_confirmation_dp_change').is(':visible')) {
var key = e.which;
if (key == 13) { //This is an ENTER
$('#changed_dp_ok').click();
}
}
});
您应该触发本机。单击()
DOM事件:
$("#modal_confirmation_dp_change").on('keydown', function ( e ) {
var key = e.which || e.keyCode;
if (key == 13) {
$('#changed_dp_ok')[0].click(); // <----use the DOM click this way!!!
}
});
$(“#模式确认(dp)更改”)。打开('keydown',函数(e){
var key=e.which | e.keyCode;
如果(键==13){
$('#已更改_dp_ok')[0]。单击();//
&时代;
模态头
模态中的一些文本
接近
我找到了问题的解决方案。似乎我不应该指向模态的id,以便检测按键事件
$(document).on('keydown keyup input click', function (e) {
if($('#modal_confirmation_dp_change').is(':visible')) {
var key = e.which;
if (key == 13) { //This is an ENTER
$('#changed_dp_ok').click();
}
}
});
我发现将焦点放在模态上是一个更好的解决方案
为了做到这一点,您必须向模式容器中添加一个tabindex
参数,然后使用JavaScript设置其焦点。完成后,它可以接收键盘事件:模式是如何创建的?您是否在事件中放置断点以查看它是否被触发?我正在使用twitter引导模式。我尝试在t中放置断点hat函数,但它没有被激发。另一方面,单击事件被激发。这应该有助于您放置html代码吗?检查添加的代码段。