4

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

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

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

另外,这里是我寻求帮助的输入框,供参考

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

5 回答 5

9

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

var el = document.getElementById("dailygain");
el.value = parseFloat(el.value);
于 2012-05-14T00:31:51.753 回答
1

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

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

例子:

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

一元加号也可以实现同样的效果(例如,console.log( +x );

于 2012-05-14T00:33:54.393 回答
0

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

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

小提琴 ​</p>

于 2012-05-14T00:37:24.027 回答
0

把它放在一个函数 run 中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
于 2012-05-14T00:42:55.240 回答
0
$("input[name=dailygain]").keyup(function(){
   var val = this.value;
   if(val.charAt(0) === '.'){
     this.value = ('0'+val); 
   }
});

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

于 2012-05-14T00:46:02.040 回答