2013-04-17 6 views
1

У меня есть простая программа для вычисления текстового поля с другим текстовым полем, 1 год назад, теперь нет проблем, у меня проблема с моим JavaScript. Он не может считать мой текстовый файл.Ошибка Javascript при вычислении

Моя форма код здесь (без HTML тега, чтобы минимизировать код здесь):

<table> 
<tr> 
    <td>Tol</td> 
    <td>:</td> 
    <td><input type="text" maxlength="11" name="tol" onkeydown="calculate()" value="0" /></td> 
</tr> 
<tr> 
    <td>Parkir</td> 
    <td>:</td> 
    <td><input type="text" maxlength="11" name="parkir" onkeydown="calculate()" value="0" /></td> 
</tr> 
<tr> 
    <td>Joki</td> 
    <td>:</td> 
    <td><input type="number" maxlength="11" name="joki" onkeydown="calculate();" value="0" /></td> 
</tr> 
<tr> 
    <td>Other</td> 
    <td>:</td> 
    <td><input type="number" name="other" maxlength="11" onkeydown="calculate();" value="0" /> <input type="text" name="othername" maxlength="50" /> </td> 
</tr> 
<tr> 
    <td>Total</td> 
    <td>:</td> 
    <td><input type="text" id="subtotal" onfocus="this.value = numberFormat(this.value);" name="subtotal" maxlength="100" value="0" /> 
     <input type="text" id="totalbox" name="totalbox" maxlength="100" /> 
    </td> 
</tr> 
    </table> 

и мой JS скрипт:

function calculate(){ 
var num1=document.myform.tol.value; 
var num2=document.myform.parkir.value; 
var num3=document.myform.joki.value; 
var num4=document.myform.other.value; 

var sum=parseFloat(num1)+parseFloat(num2)+parseFloat(num3)+parseFloat(num4); 
document.getElementById('totalbox').value=sum.toString(); 
document.getElementById('subtotal').value=sum.toString(); 
} 

кто-нибудь может исправить мой код или есть какие-либо обновления от JS, из-за чего мой JS-код не работает сейчас?

ответ

2

T ry, используя событие onkeyup вместо onkeydown. Событие onkeydown срабатывает до того, как значение вашего текстового поля отражает введенный ввод.

+0

Я пробовал это. Я даже пытаюсь сделать onfocus, onblur, onchange, но он просто такой же .. :( –

+0

У вас есть ошибки javascript? – tilleryj

+0

нет, даже когда я пытаюсь в jsfiddle, он сказал, что хорошо с моим JS .. –

1

Попробуйте ссылки на поля ввода по идентификатору, а не form.name:

function calculate(){ 
    var num1=document.getElementById('tol').value; 
    var num2=document.getElementById('parkir').value; 
    var num3=document.getElementById('joki').value; 
    var num4=document.getElementById('other').value; 

    var sum=parseFloat(num1)+parseFloat(num2)+parseFloat(num3)+parseFloat(num4); 
    document.getElementById('totalbox').value=sum.toString(); 
    document.getElementById('subtotal').value=sum.toString(); 
} 

добавить идентификатор атрибута для ваших входов:

<input type="text" maxlength="11" name="tol" id="tol" onkeydown="calculate()" value="0" /> 
... 

Вы также можете сделать свой небольшой фрагмент кода более надежным, проверяя, существует ли элемент до того, как он попытается получить значение:

function calculate(){ 
    var fld1 = document.getElementById('tol'); 
    var num1 = 0; 
    if (fld1 && fld1 != 'undefined') num1 = fld1.value; 
    ... 
+0

это точно так же ... код, не считая моего текстового поля ... есть ли обновление от JS, из-за которого мой код не работал? –

Смежные вопросы