Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.10.2010, 15:33
Кандидат Javascript-наук
Отправить личное сообщение для LRCenter Посмотреть профиль Найти все сообщения от LRCenter
 
Регистрация: 22.06.2009
Сообщений: 117

Подсчитать число запятых.
Здраствуйте.
Есть код:

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;
}


Считает число знаков и выводит число оставшихся от лимита, + блокирует ввод сверх лимита.

Как сделать так, чтобы подсчитывался и блокировался ввод только определенных символов, например запятых?
Ответить с цитированием
  #2 (permalink)  
Старый 03.10.2010, 15:36
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

form.s.value = form.s.value.replace(/,/g,'')
Ответить с цитированием
  #3 (permalink)  
Старый 03.10.2010, 16:12
Кандидат Javascript-наук
Отправить личное сообщение для LRCenter Посмотреть профиль Найти все сообщения от LRCenter
 
Регистрация: 22.06.2009
Сообщений: 117

пробую и так:

<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>



не дает ввести не одной запятой, а все остальные символы считает
Ответить с цитированием
  #4 (permalink)  
Старый 03.10.2010, 18:34
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Ну если развивать сию извращённую тему)):
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?',':''}));

А вообще, делаться это должно как-то по-другому)
Ответить с цитированием
  #5 (permalink)  
Старый 03.10.2010, 18:49
Кандидат Javascript-наук
Отправить личное сообщение для LRCenter Посмотреть профиль Найти все сообщения от LRCenter
 
Регистрация: 22.06.2009
Сообщений: 117

не, не фурычет, че я не так делаю?

<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>
Ответить с цитированием
  #6 (permalink)  
Старый 03.10.2010, 18:51
Кандидат Javascript-наук
Отправить личное сообщение для LRCenter Посмотреть профиль Найти все сообщения от LRCenter
 
Регистрация: 22.06.2009
Сообщений: 117

Сообщение от Aetae Посмотреть сообщение
А вообще, делаться это должно как-то по-другому)
Подскажите, как? Искал рабочий пример - не нашел.
Ответить с цитированием
  #7 (permalink)  
Старый 03.10.2010, 21:03
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

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>


А чтобы понять почему решение плохое - попробуйте поставить запятые не в конце печатаемого текста, а в середине иль начале.)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевернуть число Kiev Общие вопросы Javascript 9 15.11.2015 00:21
Разбить число на миссив, как ? Bogdan808 Общие вопросы Javascript 20 01.09.2010 18:19
Как округлить число в меньшую сторону с заданной точностью? barcelona Общие вопросы Javascript 2 19.08.2009 12:07
число во время boozer Элементы интерфейса 4 25.04.2009 01:58
Как прибавлять число к числу? Forgott Общие вопросы Javascript 9 06.05.2008 08:47