Добавление значения в текстовое поле из JavaScript не работает в браузере Android по умолчанию
Я пытаюсь реализовать телефон №. маскировка для мобильного сайта. И я не мог использовать плагин jquery mask, так как он не работал должным образом на устройствах. Ниже реализация отлично работает в Android Chrome Mobile Browser. Но в случае браузера по умолчанию для Android, когда я пытаюсь удалить все номера с помощью клавиши возврата, последние несколько (2/3) цифр / цифр не очищаются. Я думаю this.value += "-"; не обновляет какое-либо свойство текстового поля. Формат номера телефона (напр. ### - ### - ####)
HTML
<input id="phoneNo" type="tel" maxlength="12" placeholder="Phone"/>
JavaScript
var phoneNo = document.getElementById("phoneNo");
phoneNo.addEventListener("textInput",function(){
if(this.value.toString().length==3 || this.value.toString().length==7) {
this.value += "-";
}
});
2 ответа
Мистер Даршан, пожалуйста, посмотрите на http://jsfiddle.net/2dJAN/51/
В моем приложении я также использую эту функцию. Этот пример
- Позволит пользователю вводить только целые числа в поле
- Это автоматически добавит "-" между числами, такими как
123-456-7890
формат Вы можете удалить все числа внутри поля.
$("#fax_field").on("keyup", function(event) { var limitField = $(this).val().trim().length; var limit = "12" this.value = this.value.replace(/[^0-9_\-\.]/g, ''); if (event.keyCode != 8) { if (limitField == 3) { var fax_value = $(this).val().trim().concat('-'); $("#fax_field").val(fax_value); } else if (limitField == 7) { var fax_value = $(this).val().trim().concat('-'); $("#fax_field").val(fax_value); } } if (limitField > limit) { $("#fax_field").val($(this).val().trim().substring(0, limit)); } });
Пожалуйста, попробуйте это. Дайте мне знать ваши комментарии.
Взгляните на метод jQuery on(), так как не все браузеры поддерживают addEventListener, который, как я предполагаю, является проблемой.