2010-01-19 101 views
0

我的HTML是這樣的:自動計算輸入字段值

<input class="gbTransform" type="text" name="maxdl" value=""/> 

和JavaScript這樣的:

$('.gbTransform').change(function(){ 
     var sz = $(this).val().match(/(\d+)gb/i); 
     if(sz.length > 1){ 
      $(this).val(parseInt(sz[1])*1024); 
     } 
    }); 

這樣做是什麼,當用戶鍵入1GB它會自動計算到MBS( 1 * 1024 = 1024)並更改輸入字段值。

這工作得很好,但是當用戶鍵入1.5gb其計算5 * 1024這是不正確應該是1.5 * 1024

謝謝。

回答

0

您可以清除所有「國標」的字符串,並使用parseFloat

parseFloat("1.5"); // 1.5 

例子:

var a = "1.5gb".replace("gb", ""); 
document.print(parseFloat(a)); 
+0

不過我正在一個不正確的答案我改變parseInt函數來parseFloat但是當我輸入'1.5GB '字段的值計算爲'5 * 1024 = 5120'而不是'1.5 * 1024 = 1536' – Shishant 2010-01-19 12:28:07

+0

請查看更新的答案 – Darmen 2010-01-19 13:59:06