У меня есть тип ввода HTML ниже
HTML:
<input type=“number” class=“reqField” id=“number1” placeholder=“Enter Number only/>
<input type=“number” class=“reqField” id=“number2” placeholder=“Enter Number only/>
JS:
function focusInNumber (id) {
var thisID = id;
var nextID = id + 1;
var preID = id - 1;
clearTimeout(numberReturn);
$(“#number” + thisID).prop(“disabled”, false);
placeCursor($(“#number” + thisID));
}
function focusOutNumber (id) {
var thisID = id;
var nextID = id + 1;
var preID = id - 1;
var value = $(“#number” + thisID).val();
var regex = new RegExp(/^\d*$/);
var regex1 = new RegExp(/^.*[\+\-\.].*/);
var l = $(“#number” + thisID).val().length;
if(value.match(regex3)) {
alert(“Just enter numerical digits”);
numberReturn = setTimeout(function() {
placeCursor($(“#number” + thisID));
},5000);
} else {
if (l<=0) {
alert(“This field cannot be empty”);
placeCursor($(“#number” + thisID));
},5000);
} else {
if(value.match(regex)) {
placeCursor($(“#number” + nextID));
}
}
}
function placeCursor(id) {
id.focus();
//id.val(id.val());
var tmp= id.val();
id.val(“”);
id.va(tmp);
//id.focus().val(“”).blur().focus().val(tmp);
}
$(document).ready(function(){
....
$(“#number1”).focusin(function(){
focusInNumber(1);
});
$(“#number1”).focusout(function(){
focusOutNumber(1);
});
...
});
Таким образом, проблема в том, что при каждом нажатии вкладки следующее текстовое поле фокусируется, но курсор не находится в нем.
Я должен нажать на него, чтобы напечатать.
Я не могу понять, почему он так себя ведет в Chrome и IE.
Поскольку выбор chrome разрешен только для типа text / search, url, tel и password, а не для типа Number, selectionStart
и selectionEnd
не доступны.
Я не могу изменить тип текстового поля на текст с номера тоже.
Каждый закомментированный код функции placeCursor
является опробованным вариантом, но безуспешно при решении проблемы.
Помогите, пожалуйста, навести курсор на текстовое поле, когда вкладка нажата из текстового поля Number1
до Number2
, если оно содержит только цифры.
Обновление
Получение
Uncaught RangeError: превышен максимальный размер стека вызовов
На каждом .focus (). Это проблема, которая удерживает курсор не в фокусированном текстовом поле ввода. Try-Catch игнорирует ошибку, но не помещает курсор на текстовое поле ввода. Может кто-нибудь помочь исправить это?