Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: jquery maskedInput и focus
Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013
Помог: 1 раз(а)
Есть div по щелчку на который должен установиться фокус в input[type=text] в конец инпута. Из-за того, что к этому input применен jquery maskedInput получается, что выделяется весь текст в input. Даже если убрать часть кода ответственную за перемещение в конец input.
Код примерно такой:
$('#input').mask('999999999999999',{placeholder:' '});//поле в котором подразумевается строка из цифр максимальной длины = кол-ву 9
$('#div').click(function(){
var input = $('#input');//получаем инпут
var lastNotSpace = input.val().trimRight().lenght;//тут нюанс в том, что невведенные симпволы представляют из себя пробелы
input.focus();//сам фокус, уже тут проблемы
input[0].setSelectionRange(lastNotSpace, lastNotSpace);//курсор в конец введенной строки
});
Пс: если подразумевается строгая маска, то не исключаем сценарий когда пользователь стал вдруг вводить в другое поле, а в текущем не хочет заново набирать то, что уже ввел.
ППс: если есть более разумное решение для строки вариативной длинны, состоящей из определенного набора символов, то подскажите.
Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013
Помог: 1 раз(а)
Кажется нашел решение: сначала unmask, потом делаю focus и setSelectionRange, потом снова применяю маску.
Одна проблема: можно ли как-то получить саму маску и определить есть ли маска на input?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.