|
|
|
| Здравствуйте
у меня никак не получается авто суммирование полей без нажатий кнопок
было такое код но я немо его использовать
Помогите как его использовать или как решить задачу???
<html>
<head>
<table id="tble" class="grey" border="1" style="margin: 0 0 20px 0;" padding="1px">
<tr id="header">
<td width="310px"><b>Наименование</b></td>
<td width="55px"><b>К-во</b></td>
<td width="40px"><b>Ед.</b></td>
<td width="60px"><b>Цена</b></td>
<td width="80px"><b>Сумма</b></td>
<td width="26px"> </td>
</tr>
</table>
<script language="JavaScript">
function add_row() {
var lr = $("#last_row");
var s = '<tr class="row"><td><input name = "items.name" type="text" value=""></td>';
s+='<td><input type="text" name = "items.quantity" class = "qnt" value="" / ></td>';
s+='<td><input type="text" name = "items.units" class = "unt" value="" / ></td>';
s+='<td><input type="text" name = "items.price" class = "prc" value="" / ></td>';
s+='<td><input type="text" name = "items.total_price" class = "sum" value="" / ></td>';
s+='<td align="center"><center><img class="delete" src="/media/images/cut_red.gif" alt="уд."/></center></td></tr>';
var new_row = $(s);
lr.before(new_row);
set_events();
}
$(document).ready(function() {
set_events();
add_row();
count_totals();
});
function set_events() {
$("img.delete").click(delete_row);
$("input.qnt, input.prc").blur(on_qnt_change);
$("input.sum").blur(on_sum_change);
}
function check_values(tr) {
var sum_input = $("input.sum", tr);
var qnt_input = $("input.qnt", tr);
var prc_input = $("input.prc", tr);
var qnt = parseFloat(qnt_input.val()).toFixed(3);
var prc = parseFloat(prc_input.val()).toFixed(2);
var sum = parseFloat(sum_input.val()).toFixed(2);
if (isNaN(qnt)) qnt_input.val("")
else qnt_input.val(qnt);
if (isNaN(prc)) prc_input.val("")
else prc_input.val(prc);
if (isNaN(sum)) sum_input.val("")
else sum_input.val(sum);
}
function count_totals() {
var totals = 0;
$("tr.row", $("#tble")).each(
function()
{
var row_sum = parseFloat($("input.sum", this).val());
if (!isNaN(row_sum)) totals = totals + row_sum;
}
);
$("#total_value").text(totals.toFixed(2))
}
</script>
</head>
</html>
|
| |
|
|
|
|
|
|
|
для: nurmyrza
(27.04.2009 в 11:15)
| | Полагаете, что тут собрались экстрасенсы, кои безо всякого кода догадаются - что именно делает ваша функция $ ()?
Выкладывать надо РАБОЧИЙ код, который можно скопировать и запустить в браузере AS IS.
И браузер не будет писать "Требуется объект".
Когда ЭТО поймёте, тогда, может быть, кто-то и поможет. | |
|
|
|
|
|
|
|
для: PAT
(27.04.2009 в 14:03)
| | Это jquery | |
|
|
|
|
|
|
|
для: mihdan
(27.04.2009 в 14:07)
| | А что, jquery сегодня у всех "сам по себе стоит" во всех браузерах?
И только я один, такой отсталый от жизни, его в браузере не имею? | |
|
|
|
|
|
|
|
для: PAT
(27.04.2009 в 14:10)
| | Короче мне нужна форма с несколькими полями и конце сумма значений полей
без нажатий кнопок
при изменений значений полей сумма автоматический изменялись | |
|
|
|
|
|
|
|
для: nurmyrza
(27.04.2009 в 14:16)
| | повесть запуск обсчета на событие change() | |
|
|
|
|
|
|
|
для: nurmyrza
(27.04.2009 в 14:16)
| |
<html>
<head>
<script>
function fW () {//для целых чисел (в т.ч. < 0)
for (var t = document.getElementById
('summands').getElementsByTagName ('input'),
k = j = s = 0; j < t.length; j++)
if (t [j].value.length && !t [j].value.
replace (/^\-?\d+/g, '').length)
{s += t [j].value * 1; k++}
document.getElementById ('rezult').value =
(k == t.length) ? s : '???'; TIM = setTimeout (fW, 10)}
function fS () {clearTimeout (TIM)}
</script>
</head>
<body>
<div id="summands">
<input onfocus="this.select (); fW ()" onblur="fS ()" value="0"><br>+<br>
<input onfocus="this.select (); fW ()" onblur="fS ()" value="0"><br>+<br>
<input onfocus="this.select (); fW ()" onblur="fS ()" value="0">
</div>
<hr>
<input id="rezult" value="0">
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: PAT
(27.04.2009 в 14:50)
| | УРАА !!!
Спасибо!! работает Вы очень мне помогли | |
|
|
|
|
|
|
|
для: PAT
(27.04.2009 в 14:50)
| | Здравствуйте PAT
а как можно суммировать выборочно?? а то бывает еще другие поля
Заранее спасибо! | |
|
|
|
|
|
|
|
для: nurmyrza
(06.05.2009 в 06:35)
| |
<html>
<head>
<script>
function fW () {//для целых чисел (в т.ч. < 0)
var W = 3; //количество суммируемых полей класса sum
for (var t = document.forms ['myForm'].getElementsByTagName
('input'), k = j = s = 0; j < t.length; j++)
if (t [j].className == 'sum' && t [j].value.length && !t [j].value.
replace (/^\-?\d+/g, '').length) {s += t [j].value * 1; k++}
document.getElementById ('rezult').value =
(k == W) ? s : '???'; TIM = setTimeout (fW, 10)}
function fS () {clearTimeout (TIM)}
</script>
</head>
<body>
<form name="myForm">
<input value="другое поле"><br>
<input onfocus="this.select (); fW ()" onblur="fS ()" value="0" class="sum"><br>
<input value="сАвсем другое поле"><br>
<input onfocus="this.select (); fW ()" onblur="fS ()" value="0" class="sum"><br>
<input value="вАЩще другое поле"><br>
<input onfocus="this.select (); fW ()" onblur="fS ()" value="0" class="sum"><br>
<input value="не знаю какое, но другое поле"><br>
<input id="rezult" value="0">
</form>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: PAT
(06.05.2009 в 07:09)
| | день добрый, он не считает автоматически, нужно нажать на поле, если в сомом коде value указать цифры они автоматически считать не будут только после нажатия п полю, а как сделать что бы результат сразу выводил без клика? | |
|
|
|