Подсчитать число запятых.
Здраствуйте.
Есть код: maxLen = 25; function checkMaxInput(form) { if (form.s.value.length > maxLen) form.s.value = form.s.value.substring(0, maxLen); else document.getElementById('remLen').innerHTML = maxLen - form.s.value.length; } Считает число знаков и выводит число оставшихся от лимита, + блокирует ввод сверх лимита. Как сделать так, чтобы подсчитывался и блокировался ввод только определенных символов, например запятых? |
form.s.value = form.s.value.replace(/,/g,'') |
пробую и так:
<script> maxLen = 10; function checkMaxInput(form) { if (form.s.value.length > maxLen) form.s.value = form.s.value.substring(0, maxLen); form.s.value = form.s.value.replace(/,/g,''); else document.getElementById('remLen').innerHTML = maxLen - form.s.value.length; } </script> <form> <input id='s' type=text onkeydown='checkMaxInput(this.form);' onkeyup='checkMaxInput(this.form);'>, осталось <span id='remLen'>10 </span> запятых.</form> и так: <script> maxLen = 10; function checkMaxInput(form) { if (form.s.value.length > maxLen) form.s.value = form.s.value.replace(/,/g,''); else document.getElementById('remLen').innerHTML = maxLen - form.s.value.length; } </script> <form> <input id='s' type=text onkeydown='checkMaxInput(this.form);' onkeyup='checkMaxInput(this.form);'>, осталось <span id='remLen'>10</span> запятых. </form> ...не наботает. Наверное чего-то не понимаю. Куда эту строку предкнуть? Я так понимаю она заменяет все кроме запятых на ""? если делаю так: <script> maxLen = 10; function checkMaxInput(form) { form.s.value = form.s.value.replace(/,/g,''); if (form.s.value.length > maxLen) form.s.value = form.s.value.substring(0, maxLen); else document.getElementById('remLen').innerHTML = maxLen - form.s.value.length; } </script> <form> <input id='s' type=text onkeydown='checkMaxInput(this.form);' onkeyup='checkMaxInput(this.form);'>, осталось <span id='remLen'>10</span> запятых. </form> не дает ввести не одной запятой, а все остальные символы считает:( |
Ну если развивать сию извращённую тему)):
var c=3; //колличество разрешённых запятых form.s.value = form.s.value.replace(/,/g,function(){return c-->0?',':''} var c=3; alert('a,a,a,a,a,a,aa,aaa,a'.replace(/,/g,function(){return c-->0?',':''})); А вообще, делаться это должно как-то по-другому) |
не, не фурычет, че я не так делаю?
<script> var c=3; maxLen = 10; function checkMaxInput(form) { form.s.value = form.s.value.replace(/,/g,function(){return c-->0?',':''} if (form.s.value.length > maxLen) form.s.value = form.s.value.substring(0, maxLen); else document.getElementById('remLen').innerHTML = maxLen - form.s.value.length; } </script> <form> <input id='s' type=text onkeydown='checkMaxInput(this.form);' onkeyup='checkMaxInput(this.form);'>, осталось <span id='remLen'>10</span> запятых. </form> |
Цитата:
|
1.Use FireBug(Скобочку забыли).
<script> var c=3; maxLen = 10; function checkMaxInput(form) { form.s.value = form.s.value.replace(/,/g,function(){return c-->0?',':''}) if (form.s.value.length > maxLen) form.s.value = form.s.value.substring(0, maxLen); else document.getElementById('remLen').innerHTML = maxLen - form.s.value.length; } </script> <form> <input id='s' type=text onkeydown='checkMaxInput(this.form);' onkeyup='checkMaxInput(this.form);'>, осталось <span id='remLen'>10</span> запятых. 2. Счётчик не там. <script> maxLen = 10; function checkMaxInput(form) { var c=3; form.s.value = form.s.value.replace(/,/g,function(){return c-->0?',':''}) if (form.s.value.length > maxLen) form.s.value = form.s.value.substring(0, maxLen); else document.getElementById('remLen').innerHTML = maxLen - form.s.value.length; } </script> <form> <input id='s' type=text onkeydown='checkMaxInput(this.form);' onkeyup='checkMaxInput(this.form);'>, осталось <span id='remLen'>10</span> запятых. 3. Ваш код в принцпе и не нужен). <script> function checkMaxInput(form) { var c=3; form.s.value = form.s.value.replace(/,/g,function(){return c-->0?',':''}) document.getElementById('remLen').innerHTML = c; } </script> <form> <input id='s' type=text onkeydown='checkMaxInput(this.form);' onkeyup='checkMaxInput(this.form);'>, осталось <span id='remLen'>3</span> запятых. </form> А чтобы понять почему решение плохое - попробуйте поставить запятые не в конце печатаемого текста, а в середине иль начале.) |
Часовой пояс GMT +3, время: 15:48. |