input, заблокировать первые два символа
Добрый день подскажите, как сделать так что бы когда пользователь меняет значение в инпуте, некоторые символы он не мог изменить, что бы они остались как были.
|
Цитата:
<!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /> <script src='https://code.jquery.com/jquery-latest.js'></script> <!-- <script src="https://code.angularjs.org/1.3.9/angular.min.js"></script> <script src="https://code.angularjs.org/1.3.9/angular-route.js"></script> --> <style type='text/css'> </style> <script type='text/javascript'> $(function(){ var str=''; $('input').on('input',function(e){ if (str.length==2) { if (this.selectionStart<3) { this.value=this.value.replace(/./,''); }; this.value=this.value.replace(/.?.?/,str); } else { str=this.value.slice(0,2); }; }); }); </script> </head> <body> <input type='text' /> </body> </html> |
Благодарю, а replace(/./ и replace(/.?.?/ чего такое и для чего?
18 строчка this.value=''; какое отличие? у себя сделал чуть по другому но и так тоже работает var str=''; function Input_MAC(){ Temp=document.getElementById("id_Mac"); if (str.length==2) { if (Temp.selectionStart<3) { //Temp.value=Temp.value.replace(/./,''); Temp.value=''; console.log(Temp.value); }; Temp.value=Temp.value.replace(/.?.?/,str); console.log(Temp.value); } else { str=Temp.value.slice(0,2); }; } |
Наверное, имеет смысл заранее задать 2 первых символа, например:
var str='0#'; $('input').val(str); |
Цитата:
Цитата:
Цитата:
Думаю разница тут очевидна. Цитата:
Цитата:
|
можно вынести их перед инпутом
|
Alexandroppolus,
Цитата:
<div style="display: inline-block;border:1px solid blue"> 0x<input type="text"> </div> |
Цитата:
|
laimas,
Пардон, 0x Префикс шестнадцатеричного числа. Именно эти два символа нужны ТС, насколько я помню из его предыдущих тем |
<input type="number" min="100" max="125" value="105" onchange="document.getElementById('hex').value=this.valueAsNumber.toString(16).toUpperCase()" /> 0x<output id="hex">69</output> |
Часовой пояс GMT +3, время: 09:58. |