在输入中输入小数点前加0?

时间:2012-05-14 00:29:58

标签: javascript jquery

我正在尝试使用jQuery完成快速表单,如果小数是输入中输入的第一个字符,则需要在小数点前添加0。

例如, 在提交表单之前,.25将变为0.25。 但是,2.05将保持为2.05,并且不会添加0。

这里有一个简单的功能可以帮助我吗?如果没有必要,我宁愿不写一些冗长而详细的内容。

此外,这是我要求帮助的输入框,供参考

<input type="number" name="dailygain" id="dailygain" />

5 个答案:

答案 0 :(得分:9)

您可以使用parseFloat函数格式化浮点数。

var el = document.getElementById("dailygain");
el.value = parseFloat(el.value);

答案 1 :(得分:1)

乘以1(*1)使其成为数字。

如果你把它作为一个数字,它会自动为你做;根据您的系统区域设置进行格式化。

示例:

var x = '.25';
console.log( x*1 );  // 0.25

使用一元加(例如console.log( +x );

可以实现同样的目的

答案 2 :(得分:0)

parseFloat可能更适合,但无论如何:

$('#dailygain').on('keyup', function() {
    if (this.value[0] === '.') this.value = '0'+this.value;
});

FIDDLE

答案 3 :(得分:0)

将其放入函数运行onsubmit

var num=$("#dailygain").val(); //read the number from the textbox
num=num.toString(); //convert that number to a string
if (num.charAt(0)==".") //check if the string starts with a period
    num="0"+num; //if so, add a 0 in front of it
$("#dailygain").val(num); //write the number back to the tb

答案 4 :(得分:0)

$("input[name=dailygain]").keyup(function(){
   var val = this.value;
   if(val.charAt(0) === '.'){
     this.value = ('0'+val); 
   }
});

http://jsbin.com/ofivun/2/edit