此代码在Chrome中运行良好,但在Firefox(最新版本)中存在一些问题。 见Jsbin: http://jsbin.com/fasuxofavo/1/edit
$(document).ready(function(){
$(".typinganswer input").on('keypress', function(e)
{
if(e.keyCode==13){
alert("finish");
}
if($(this).val('') != "")
$(this).val('');
if($(this).is(':last-child'))
$(this).select();
$(this).next().select();
})
.on('keyup',function(e)
{
if(e.keyCode==8){
$(this).prev().select();
return;
}
})
$(".typinganswer input").on('click', function(e)
{
$(this).select();
});
})
退格键无法正常工作。帮我解决这个问题。 见Jsbin: http://jsbin.com/fasuxofavo/1/edit
答案 0 :(得分:1)
if(e.keyCode!=8){...}
围绕你的按键事件动作如下:
$(document).ready(function(){
$(".typinganswer input").on('keypress', function(e)
{
if(e.keyCode!=8){
if(e.keyCode==13){
alert("finish");
}
if($(this).val('') !== "")
$(this).val('');
if($(this).is(':last-child'))
$(this).select();
$(this).next().select();
}
})
.on('keyup',function(e)
{
if(e.keyCode==8){
$(this).prev().select();
return;
}
});
$(".typinganswer input").on('click', function(e)
{
$(this).select();
});
});
答案 1 :(得分:1)
问题是,当你单击 Backspace 时,两个处理程序都被调用,你应该忽略keypress
处理程序中的 Backspace 。把它放到回调的开头:
$(".typinganswer input").on('keypress', function (e) {
if (e.keyCode == 8) {
return;
}
...
});
或者,如果您想使用许多不同的密钥,我建议您在switch
上使用keyCode
语句。