我有另一个问题,如果我需要更改第二或第三场,我已经填满了所有领域。无法进行更改,它会进入最后一个输入字段。
我试过下面的代码,
(function (){
$("#num1, #num2, #num3, #num4").on("keyup", function (t) {
//add the key's you want to accept such as backspace or arrow keys etc.
if (t.keyCode != 13 && t.keyCode != 8 && t.keyCode != 37 && t.keyCode != 38 && t.keyCode != 39 && t.button != 1 && t.button != 2 && t.button != 3) {
var maxlength = 4;
var num1 = $("#num1").val().length;
var num2 = $("#num2").val().length;
var num3 = $("#num3").val().length;
var num4 = $("#num4").val().length;
$(this).val($(this).val().replace(/[^0-9\.]/g,''));
if ( num1 >= 4) {
$("#num2").focus();
}
if( num2 >= 4){
$("#num3").focus();
}
if( num3 >= 4){
$("#num4").focus();
}
if (num4>=4){
$("#num4").val($("#num4").val().substr(0,4));
}
}
});
})();
答案 0 :(得分:2)
您粘贴的代码if语句错误。让我们试着理解这个问题。以下是您的代码的工作方式
第一个字段中的输入值。到达下一个四个字符。在第二个字段中输入。到达下一个四个字符。输入第三个字段。到达下一个四个字符。输入第四个字段。到达四个字符停止。
现在问题出在你开始编辑的时候。编辑第二行时。你的if命令同时告诉你检查第三和第四行。所以如果第三行有四个字符则转到第四行。如果第四行有四个字符停止。因此,除非您删除第三行和第四行中写入的内容,否则您无法编辑第二行。
Bhavesh分享的以下链接完全符合您的要求。根据需要将最大限制增加到4。但我希望你能够理解问题所在,这样你以后就不会犯同样的错误。
$(".inputs").keyup(function () {
if (this.value.length == this.maxLength) {
$(this).next('.inputs').focus();
}
});
答案 1 :(得分:2)
我很忙,但我用一种简单的方法解决了你的问题..
将您的Jquery更改为此
(function (){
$("#num1, #num2, #num3, #num4").on("keydown", function (t) {
//add the key's you want to accept such as backspace or arrow keys etc.
if (t.keyCode != 13 && t.keyCode != 8 && t.keyCode != 37 && t.keyCode != 38 && t.keyCode != 39 && t.button != 1 && t.button != 2 && t.button != 3) {
var maxlength = 4;
var num1 = $("#num1").val().length;
var num2 = $("#num2").val().length;
var num3 = $("#num3").val().length;
var num4 = $("#num4").val().length;
$(this).val($(this).val().replace(/[^0-9\.]/g,''));
if (num1 >= 4) {
$("#num2").focus();
}
if(num1 >= 4 && num2 >= 4){
$("#num3").focus();
}
if((num1 >= 4 && num2 >= 4) && num3 >= 4){
$("#num4").focus();
}
if ((num1 >= 4 && num2) && (num3 >= 4 && num4)){
$("#num4").val($("#num4").val().substr(0,3));
}
}
});
})();