我正在尝试使用 jQuery 完成一个快速表单,如果小数点是输入中输入的第一个字符,则需要在小数点前添加 0。
例如,在提交表单之前,0.25 将变为 0.25。但是,2.05 将保持为 2.05,并且不会添加 0。
这里有一个简单的功能可以帮助我吗?如果没有必要,我宁愿不写长而详细的东西。
另外,这里是我寻求帮助的输入框,供参考
<input type="number" name="dailygain" id="dailygain" />
我正在尝试使用 jQuery 完成一个快速表单,如果小数点是输入中输入的第一个字符,则需要在小数点前添加 0。
例如,在提交表单之前,0.25 将变为 0.25。但是,2.05 将保持为 2.05,并且不会添加 0。
这里有一个简单的功能可以帮助我吗?如果没有必要,我宁愿不写长而详细的东西。
另外,这里是我寻求帮助的输入框,供参考
<input type="number" name="dailygain" id="dailygain" />
您可以使用parseFloat
函数来格式化浮点数。
var el = document.getElementById("dailygain");
el.value = parseFloat(el.value);
乘以 1 ( *1
) 使其成为数字。
如果你把它变成一个数字,它会自动为你做;根据您的系统区域设置进行格式化。
例子:
var x = '.25';
console.log( x*1 ); // 0.25
一元加号也可以实现同样的效果(例如,console.log( +x );
)
parseFloat 可能更适合,但无论如何:
$('#dailygain').on('keyup', function() {
if (this.value[0] === '.') this.value = '0'+this.value;
});
小提琴 </p>
把它放在一个函数 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
$("input[name=dailygain]").keyup(function(){
var val = this.value;
if(val.charAt(0) === '.'){
this.value = ('0'+val);
}
});