Окружающая среда:
Пожалуйста, используйте IE для тестирования
Требования:
У меня есть предупреждающее сообщение, которое проверяет, вводит ли пользователь значение меньше 8 цифр - пользователь не сможет перейти к следующему полю ... он должен остаться в том же поле.
Проблема:
С функциональностью все в порядке, кроме одного - когда пользователь вводит любое значение в текстовое поле длиной менее 8 цифр, он возвращает свои ошибки таким образом, что курсор перемещается на первую букву введенного значения, тогда как он должен возвращаться к последняя буква введенного значения.
Код:
<html>
<body>
<script>
function checkField(field) {
if (field.value.length < 8) {
// Toggle the active element's blur off and back on after the next blur
var active = document.activeElement;
if (active && active !== field) {
var blur = active.onblur || function(){};
active.onblur = function(){ active.onblur = blur };
}
field.focus();
alert("cannot be less than 8 digits");
}
}
</script>
<input type="text" id="test1" onblur='return checkField(this);'>
<br/>
<input type="text" id="test2" onblur='return checkField(this);'>
</tr>
</table>
</body>
</html>