2014-01-28 5 views
-1

Как вы можете видеть, есть значение уже в текстовом поле (всего), которое я отфильтровал по таблице ... и если я наберу число в текстовых полях (оценка), он автоматически добавит на текущее значение общего количества (текстовое поле) ... может ли кто-нибудь помочь мне в том, что не так для моего кода, потому что он не работает, как я ожидал ... он не вычислит.Добавить значение в текстовое поле

HTML код:

<form id="frm" name="frm" /> 
<table> 
<tr> 
<td> 
Name: <br /> 
<input type="text" name="name" value="<?php if(empty($name[0])){$name[0] = array(NULL);}else{echo $name[0];} ?>" readonly /> <br /> 
</td> 
<td> 
Score 1: <br /> 
<input type="text" name="optA" value="" onkeypress="return isnumeric(event)" onchange="optTotal()" /> <br /> 
</td> 
<td> 
Score 2: <br /> 
<input type="text" name="optB" value="" onkeypress="return isnumeric(event)" onchange="optTotal()" /> <br /> 
</td> 
<td> 
Score 3: <br /> 
<input type="text" name="optC" value="" onkeypress="return isnumeric(event)" onchange="optTotal()" /> <br /> 
</td> 
<td> 
Score 4: <br /> 
<input type="text" name="optD" value="" onkeypress="return isnumeric(event)" onchange="optTotal()" /> <br /> 
</td> 
<td> 
Total: <br /> 
<input type="text" name="totals" value="<?php if(empty($total[0])){$total[0] = array(NULL);}else{echo $total[0];} ?>" readonly onKeyUp="optTotal()" /> <br /> 
</td> 
</form> 

код сценария для расчета:

<script> 
function optTotal() { 
     var a1 = document.forms[0].optA; 
     var b1 = document.forms[0].optB; 
     var c1 = document.forms[0].optC; 
     var d1 = document.forms[0].optD; 
     var xtotal = document.forms[0].totals; 
     if (a1.value && a1.value != "") 
      a1 = parseFloat(a1.value); 
     else 
      a1 = 0; 

     if (b1.value && b1.value != "") 
      b1 = parseFloat(b1.value); 
     else 
      b1 = 0; 

     if (c1.value && c1.value != "") 
      c1 = parseFloat(c1.value); 
     else 
      c1 = 0; 

     if (d1.value && d1.value != "") 
      d1 = parseFloat(d1.value); 
     else 
      d1 = 0; 
     if (xtotal.value && xtotal.value != "") 
      xtotal = parseFloat(xtotal.value); 
     else 
      xtotal = 0; 

     var total = a1 + b1 + c1 + d1 + xtotal; 
     document.forms[0].total.value = total; 
     } 
</script> 

ответ

0

попробовать этот

set id for total input e.g TOTAL 
document.getElementById('TOTAL').setAttribute('value',total) 

или изменить эту строку total в totals

document.forms[0].totals.value = total 
+0

как приходят, когда я печатаю на кулак бальной текстовое поле его добавить отлично, но если я изменить число, умноженное на общее? – user3235574

+0

Вы называете jquery ??? isNumberic для jquery –

+0

- это функция javascript, которая не позволяет вводить буквы и специальные символы в текстовые поля. – user3235574

-1

1 Убедитесь, что функция «isnumeric» работает правильно и доступна, поэтому она не прерывает сценарий.

2 Ваших "Итоги" имя неверно здесь:

document.forms[0].total.value = total; 

изменить его:

document.forms[0].totals.value = total; 

-Используйте вашу консоль браузера, чтобы увидеть ошибки!

+0

почему он не делает дополнение отлично? Когда я набираю его как удвоение какое число я набираю и добавляю к общей стоимости. – user3235574

+0

это потому, что вы каждый раз добавляете его к значению xtotals (которое уже является общим) .. просто удалите его из последнего вычисления! – Yami

+0

, потому что, если я удалю его, он не посчитает, как он так позирует в первую очередь? – user3235574

0

Существует ошибка в сценарии JS:

Не:

document.forms[0].total.value = total; 

Но:

document.forms[0].totals.value = total; 
Смежные вопросы