Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подсчет количества слов в поле формы. (https://javascript.ru/forum/misc/4624-podschet-kolichestva-slov-v-pole-formy.html)

Guranin 09.08.2009 11:42

Подсчет количества слов в поле формы.
 
Доброго времени суток, уважаемые!

Столкнулся с такой вот ситуацией. Присутствует форма, отправляющая имэйл. Суть в том, что в поле "Текст объявления" вводится какой-то текст, и надо подсчитать количество слов в нем, ну и, соответственно, вывести их на экран. Вот сама форма (откуда-то выдрал, чуток переделал).

<form action="mailer.php" method="post">
<table border="0" cellspacing="1" class="tablestyle" cellpadding="1" align="center">
<tr><td>Ф.И.О (заказчика):</td>
<td><input type="text" name="name" size="50"></td></tr>
<tr><td>E-mail: </td>
<td><input type="text" name="email" size="50"></td></tr>
<tr><td>Название организации: </td>
<td><input type="text" name="siteurl" size="50"></td></tr>
<tr><td>Контактный телефон: </td>
<td><input type="text" name="sitename" size="50"></td></tr>
<td>Текст вашего объявления: </td>
<td><textarea name="comments" cols=38 rows="7"></textarea></td></tr>
<tr><td colspan="2"><center><input type="submit" value="Отправить">&nbsp;&nbsp;<input type="reset" value="Очистить"></center></td></tr>
</table></form>

В принципе, простецкая. Обрабатывает ее пхп-скриптик. Подсчитать нужно количество слов в textarea "comments".

Видел на форуме скрипт для подсчета, но там по клику на кнопочке, а надо на лету... Помогите, плиз...

Riim 09.08.2009 13:56

Цитата:

Сообщение от Guranin
а надо на лету

Это как, на лету?

Андрей Параничев 09.08.2009 15:18

Riim,
Это по keyup наверно.

Guranin 09.08.2009 15:25

по факту ввода слов, я так понимаю. Я на каком то форуме такую приблуду видел. То есть не символы считает, а слова. Ввел одно слово - циферка 1 внизу поЯвилась, ввел два, три, соответствено циферка меняется.

B~Vladi 10.08.2009 10:41

Регулярные выражения - это сила;)

Guranin 10.08.2009 10:52

Боюсь, что мне это ничего не говорит. Я в яве ноль :(

B~Vladi 10.08.2009 11:25

Здесь все в яве ноль. Если хочешь считать слова - гуглить по запросу "регулярные выражения в JavaScript". Они есть во всех(?) языках программирования. Чем-то конкретным помочь не могу, т.к. рег. выражения знаю не очень.

Андрей Параничев 10.08.2009 13:35

Можно вот так например:
<form action="mailer.php" method="post">
<table border="0" cellspacing="1" class="tablestyle" cellpadding="1" align="center">
<tr><td>Ф.И.О (заказчика):</td>
<td><input type="text" name="name" size="50"></td></tr>
<tr><td>E-mail: </td>
<td><input type="text" name="email" size="50"></td></tr>
<tr><td>Название организации: </td>
<td><input type="text" name="siteurl" size="50"></td></tr>
<tr><td>Контактный телефон: </td>
<td><input type="text" name="sitename" size="50"></td></tr>
<td>Текст вашего объявления: </td>
<td><textarea name="comments" cols=38 rows="7"></textarea></td></tr>
<td>Введено слов: <span id="counter">0</span></td></tr>
<tr><td colspan="2"><center><input type="submit" value="Отправить">&nbsp;&nbsp;<input type="reset" value="Очистить"></center></td></tr>
</table></form>
<script type="text/javascript">
	var textarea = document.getElementsByName("comments")[0];
	var counter = document.getElementById("counter");
	textarea.onkeyup = function() {
		counter.innerHTML = this.value.split(/ +(?:\S)/).length;
	}
</script>


Часовой пояс GMT +3, время: 02:00.