Подскавка в input нужного шаблона
Хочу сделать чтобы в input поле был вставлен шаблон в только в него можно было вставлять данные, к примеру телефон
+7-(_ _ _) -_ _ _-_ _ - _ _ всё это в input , но вводить можно только там где нижнее подчёркивание или для сайт http://___________________ т.е. вводить только после http:// Удалить в input "http://" нельзя |
vladimircape, для этого есть специальные типы input:
<input type="tel" /> <input type="url" /> |
внизу пример, но он не доделан и неверен, когда я понял, что не по тому пути пошел, мой интерес пропал))
<input type="text" id="tel" value="+7-(___)-___-__-__" onkeyup="testtel(this);"/> <script> function testtel(el){ var str=el.value.split(/[^\d\+-_\(\)]/).join(''); // or replace var regexi=/^\+7-\(([\d_]{0,4})\)-([\d_]{0,4})-([\d_]{0,3})-([\d_]{0,3})$/; var result=regexi.exec(str); var n; if(!result){ var regexfif=/7?([\d_]{3})([\d_]{3})([\d_]{2})([\d_]{2})/; result=regexfif.exec(str.split(/[-\)\(]/).join('')); if(!result){ el.value='+7-(___)-___-__-__'; return; }else{ str='+7-('+result[1]+')-'+result[2]+'-'+result[3]+'-'+result[4]; } } result=regexi.exec(str); var didreg=/^\d+$/; for(var i=1;i<5;i++){ switch (i){ case 1: n=3; break; case 2: n=3; break; case 3: n=2; break; case 4: n=2; break; } while(result[i].length!=n){ if(result[i].length>n){ if(didreg.test(result[i])){ result[i+1]=''+result[i][result[i].length-1]+result[i+1]; result[i]=result[i].substring(0,result[i].length-1); } else result[i]=result[i].replace(/_/,''); } else result[i]=result[1]+'_'; } } if(document.selection){ // Для IE var s=document.selection.createRange(); el.value='+7-('+result[1]+')-'+result[2]+'-'+result[3]+'-'+result[4]; s.select(); }else{ // Opera, FireFox, Chrome var start=el.selectionStart; var end=el.selectionEnd; el.value='+7-('+result[1]+')-'+result[2]+'-'+result[3]+'-'+result[4]; el.setSelectionRange(start,end); } } </script> по факту нужно просто запретить на поле ввод символов кроме цифр, потом распаршивать на цифры и подставлять шаблон к этим номерам, т.е верхняя часть функции отпадает, потом просто позицию курсора выставлять верно ) А с урлом там вообще ерунда, проверка на начало ссылки, чтобы была хттп Но обычно так не делается )) А просто делается валидация и в случае неверного ввода всплывает подсказка мол введите так а не эдак. |
Цитата:
<span> +7 ( <input type='text' size='3' /> )- <input type='text' size='3' /> - <input type='text' size='2' /> - <input type='text' size='2' /> </span> |
Часовой пояс GMT +3, время: 21:03. |