以下代码在满足maxlength条件后将光标从一个文本框移动到下一个文本框。 以下代码在Chrome中运行良好。对于第一个文本框,最大长度为3,因此光标自动移动到下一个文本框。但不明白为什么在互联网浏览器中它没有这样做。 请帮忙,我错过了重要的交货日期。请注意' mobNum'是那些文本框的类
$('.mobNum').keypress(function(evt) {
debugger;
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
$("#msgMobileValidation").text("");
$("#divClientValidMobile").hide();
var idStr = $(this).attr('id').split('_')[0];
var idCnt = $(this).attr('id').split('_')[1];
var nextIdCnt = parseInt(idCnt) + 1;
nextIdCnt = nextIdCnt.toString();
var nextControlId = "#" + idStr + "_" + nextIdCnt;
var strLength = this.value.length + 1;
var limit = parseInt($(this).attr('maxlength'));
if (strLength == limit) {
//$(nextControlId).focus();
document.getElementById(nextControlId).focus();
}
});
答案 0 :(得分:0)
对于IE,您需要使用setTimeout
实现焦点,因此请替换以下行:
document.getElementById(nextControlId).focus();
这一个:
setTimeout(function(){document.getElementById(nextControlId).focus();},20);
请注意,您可以设置任何值而不是20(以毫秒为单位的时间),但请确保它不会导致延迟。所以保持小(5,10,15,20 ......)