Stack Overflow на русском Asked by Yuliya on January 19, 2021
Использую для input с type=’text’ маску для ввода номера телефона (+7(…)…-..-..). Всё работает, но проблема в том, что если пользователь клиент по полю слева, то курсор появляется перед маской, т. е. перед +7. Как сделать, чтобы курсор автоматически перемещался в конец поля?
Вот пример - если при фокусе каретка левее нужной позиции, то она ставится в нужную позицию:
let input = document.querySelector('input');
let caretPos = 4;
input.addEventListener('focus',()=>{
setTimeout(()=>{
if( input.selectionStart < caretPos ){
input.setSelectionRange( caretPos, caretPos );
}
},0);
});
<input type="text" value="+7 (___) ___ - ___ - ___ - ___">
Answered by Pavel Grishaev on January 19, 2021
Насколько мне известно, за любое событие на объекте отвечает его фильтр событий. Смотря на чём пилите. Если юзаете .Net MVC или Qt там эта фича точно должна быть. Если же просто html то наверное в JS function()... и добавляете её в фильтр обработки событий объекта в теге элемента: <input type="text" onclick="function();" ... Всех благ.
Answered by Init_the_Pool on January 19, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP