log
Есть форма типа:
Код:
<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-х символов и суммировать их значение.
А вот как это сделать ума не приложу, помогите, кто может!
Corex
На примере одной текст-арии, остальные надо добавить к 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>
Yacc
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>
log
Yacc писал:
Может всё-таки 9? :)
не, там их 11 будет :)
там в строках с "ааа" пробелы есть :)
Кстати
Yacc, спасибо за пример оценил!