Подсчитать число запятых.
Здраствуйте.
Есть код:
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, время: 06:44. |