Подскавка в 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, время: 22:00. |