2010-01-19 108 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