忽略 ux 的键控几秒钟
Ignore keyup for a few seconds for ux
我有一个使用 jquery 验证器插件的多步骤表单,当您按 Enter 时也会转到下一页。
function showPage(pg){
$('formError').empty();
$('table:visible').hide();
$('#page-' + pg).show();
$('input[type="text"]:visible').focus();
}
$(document).keydown(function(e) {
if(e.which == 13) {
if($('#msform :input:visible').valid()){
page++;
showPage(page);
}}});
问题是,如果使用 Enter 按钮,它会在下一页上触发验证错误,因为该按钮仍在按下并尝试转到下一页。
如何在短时间内忽略 Enter 键,以便释放 Enter 键可以转到下一页,而无需尝试在下一页之后转到该页面?
您可以等待相应的键键事件,然后再考虑 enter 键的新键下事件。
pressed = {};
$(document).keydown(function(e){
if(pressed[e.which] == null && e.which == '13'){
if($('#msform :input:visible').valid()) {
page++;
showPage(page);
}
}
pressed[e.which] = true;
});
$(document).keyup(function(e) {
pressed[e.which] = null;
});
你可以
像这样使用 setTimeout() 函数
$(document).keydown(function(e) {
setTimeout(myFunction(),500);
});
function myFunction(){
if(e.which == 13) {
if($('#msform :input:visible').valid()){
page++;
showPage(page);
}}
}
::::::::::::::::::更新::::::::::::::::::
$(document).keydown(function(e) {
if(e.which == 13) {
setTimeout(myFunction(),500);
}
});
function myFunction(){
if($('#msform :input:visible').valid()){
page++;
showPage(page);
}
}
相关文章:
- 显示5秒后隐藏潜水
- 操作员”;新的“;根据我想在几个JavaScript文件中使用的类,在JavaScript中使用
- X秒后刷新select元素
- 如何每10.6秒从时间戳增加+1
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 可以't将几个数字设置为<输入类型=“;数字“>
- 设置随机数,然后每5秒随机减少一次,直到达到0(javascript)
- Javascript函数,需要每隔30秒递减一次
- Javascript倒计时计时器倒计时未正确更新秒/分钟
- 淡入淡出每隔几秒就会发生变化的图像
- 忽略 ux 的键控几秒钟
- 在画布上显示字符串仅显示几分之一秒
- 每隔x秒重复几次触发器('click')功能
- HTML5 -视频播放时每隔几秒触发一次事件
- 使用JavaScript在视频结束前几秒运行一个函数
- 使用setTimeout在X秒后隐藏几个元素
- 反应-每隔几秒渲染相对时间
- 显示前的几秒延迟:无
- 使用socket.io每隔几秒以编程方式触发一个事件
- 在每隔几秒播放的动画中添加声音