【发布时间】:2021-07-14 14:25:43
【问题描述】:
之前,我在我正在处理的项目中测试在线表单,发现我实际上无法在任何表单字段中输入任何内容。我把它缩小到一个特定的脚本。而且我认为是代码中的这一点导致了问题,因为当我删除它时,我可以再次输入。
$(document).on('keypress', handleEvent);
但是对于我的生活,我不知道为什么会发生,我不知道如何去解决它。如有任何帮助指出问题所在以及如何解决此问题,我们将不胜感激。
jQuery(document).ready(function($) {
function handleEvent(e){
var id = null;
var fade_out;
var fade_in;
if (e.type === 'click'){
id = $(this).attr("id");
}else{
id = e.which;
}
switch (id){
case 13:
if ($('#click_1').is(':visible')){
fade_out = '#start_1';
fade_in = '#step_0';
}
break;
..etc..
default:
break;
}
$(fade_out).fadeTo( 'fast', 0 );
$(fade_in).delay( 800 )..fadeTo( 'slow', 1 );
e.preventDefault();
}
$('#ts_container').on('click', 'button, a', handleEvent);
$(document).on('keypress', handleEvent);
});
更新
我想出了一个办法来解决它。但是,仍然不知道为什么会这样。
替换:
$(document).on('keypress', handleEvent);
与:
if ($(document).keydown(function(e){
if ($('#service_form').is(':hidden')){
$(document).on('keyup', handleEvent);
}
}));
【问题讨论】:
标签: javascript jquery forms function switch-statement