2014-07-14 90 views
0

我有這個簡單的表單,我正在嘗試提交。它有3個輸入:文本字段,填充了來自計算的數據,具體取決於您輸入信息的哪個字段。我可以打入輸入,並且工作正常,因爲我仍然專注於該字段,但如果我輸入了表單點擊提交按鈕。這裏是html。提交表格仍然選擇輸入

<form id="pr"> 
<table width="680px" border="0" cellspacing="0" cellpadding="0" align="center"> 
    <tr> 
    <td colspan="3" align="center" bgcolor="#CCCCCC" class="header">Pressure Conversion Calculator</td> 
    </tr> 
    <tr> 
    <td bgcolor="#efefef" class="text">Psi</td> 
    <td bgcolor="#efefef" class="text">MPa</td> 
    <td bgcolor="#efefef" class="text">Bar</td> 
    </tr> 
    <tr> 
    <td bgcolor="#efefef" class="text"><input id="psi" name="psi" type="text" size="7" value=""/></td> 
    <td bgcolor="#efefef" class="text"><input id="mpa" name="mpa" type="text" size="7" value="" /></td> 
    <td bgcolor="#efefef" class="text"><input id="bar" name="bar" type="text" size="7" value="" /></td> 
    </tr> 
    <tr> 
    <td colspan="3" bgcolor="#efefef">&nbsp;</td> 
    </tr> 

    <tr> 
    <td colspan="3" bgcolor="#efefef"> 
    <input type="submit" name="button" id="submit" value="Calculate" class="submitbutton"/> 
    <input type="button" name="clear" id="clear" value="Clear Fields" class="submitbutton"/> 
    </td> 
    </tr> 

    <tr> 
    <td colspan="3" bgcolor="#efefef" height="5"></td> 
    </tr> 

</table> 

,然後jQuery的

$('#submit').click(function(event){ 
event.preventDefault(); 

    if($('#psi').is(':focus')){ 
     pressure = parseInt($('#psi').val());  
     bar = pressure * 0.0690; 
     $('#bar').val(bar.toFixed());  
     mpa = pressure * 0.006894759086775369; 
     $('#mpa').val(mpa.toFixed());    
    } 

    else if($('#mpa').is(':focus')){ 
     pressure = parseInt($('#mpa').val()); 
     bar = pressure * 10; 
     $('#bar').val(bar.toFixed());   
     psi = pressure * 145.0377; 
     psi = Math.round(psi/1000)*1000;  
     $('#psi').val(psi);    
    } 

    else if($('#bar').is(':focus')){ 
     pressure = parseInt($('#bar').val()); 
     mpa = pressure * 0.1; 
     $('#mpa').val(mpa.toFixed()); 
     psi = pressure * 14.500; 
     psi = Math.round(psi/1000)*1000; 
     $('#psi').val(psi);  
    } 

    else{} 

}); 

我有點新的這個和我只是試圖找出所有的bug。任何幫助,將不勝感激。

+0

'event.preventDefault()'防止其提交,因爲這是點擊提交按鈕的默認操作。只有在驗證確定不應提交時才應該這樣做。 – Barmar

回答

1

使用普通按鈕(刪除type="submit"),然後提交表單在代碼:

document.forms[0].submit(); 
+0

這不起作用,因爲如果您將注意力集中到另一個字段並輸入數字,那麼它將恢復到上一次提交提供的文本字段中的原始答案。 – user3203552