С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 25/11/10 в 01:26 |
Есть форма типа:
Код: |
<form>
<textarea id="text1" name="text1">aaa
bbbbbbbbbbbb
cccccccccccccc
ddddddddddddd
eee</textarea>
<textarea id="text2" name="text2">aaa
bbbbbbbbbbbb
cccccccccccccc
ddddddddddddd
eee</textarea>
<textarea id="text3" name="text3">aaa
bbbbbbbbbbbb
cccccccccccccc
ddddddddddddd
eee</textarea>
<button id="submit" onClick="sumallstr()">submit</button>
<input type="text" name="sum" id="sum" value="">
</form>
|
Нужно, чтобы при нажатии на кнопку submit в поле sum появлилась сумма строк всех полей textarea, которые длинне 3-х символов, т.е. в данном примере сумма будет 12.
Итак, начнемс:
Код: |
<script type="text/javascript">
function sumallstr()
{
var calculated = (document.getElementById('text1').value + (document.getElementById('text2').value + (document.getElementById('text1').value);
document.getElementById('sum').value = isNaN(calculated)==true?0:(calculated);
return true;
}
</script>
|
Ну, естественно, что мой скрипт нифига не посчитает, т.к. в сначало нужно засунуть каждое поле строк в массив, потом перебрать строки отсеяв те, что короче 3-х символов и суммировать их значение.
А вот как это сделать ума не приложу, помогите, кто может!
|
|
|
|
« ... full on ... »
С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686
|
Добавлено: 25/11/10 в 09:36 |
На примере одной текст-арии, остальные надо добавить к lines, как в твоём коде, только между ними ещё добавить перевод строк, чтобы последняя строка из предыдущей, не сливалась с первой строкой из следующей.
Код: | <script type="text/javascript">
function sumallstr()
{
lines = document.getElementById('text1').value;
lines = lines.split("\r\n");
total = 0;
for(i=0; i<lines.length; i++)
{
if(lines[i].length>3) total++;
}
document.getElementById('sum').value = total;
return true;
}
</script> |
|
|
Power of the lime madness...
|
5
|
|
|
С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 25/11/10 в 15:29 |
Супер, спасибо , именно то, что я хотел, оценил по максимуму!
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 25/11/10 в 22:37 |
log писал: | .., т.е. в данном примере сумма будет 12. |
Может всё-таки 9?
Код: | <html>
<head>
<script type="text/javascript">
function foo(){
var s = 0;
var t = document.form1.getElementsByTagName("TEXTAREA");
for(i = 0; i < t.length; i++){
var l = t[i].value.split("\n");
for(j = 0; j < l.length; j++) s += l[j].length > 3
}
return s;
}
</script>
</head>
<body>
<form name="form1">
<textarea></textarea>
<textarea></textarea>
<textarea></textarea>
<button id="submit" onClick="alert(foo());">submit</button>
</form>
<body>
</html> |
|
|
|
|
С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 26/11/10 в 07:25 |
Yacc писал: | Может всё-таки 9? :)
|
не, там их 11 будет :)
там в строках с "ааа" пробелы есть :)
Кстати Yacc, спасибо за пример оценил!
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |