如何只允许输入两个小数点
How to Make Input Only Allow Two Decimal Places to be Entered?
我不知道如何做到这一点,但我相信它可以用JavaScript或PHP完成。我是否可以输入一个只允许输入小数点后两位的数字?从本质上讲,我希望输入在小数点后两位停止输入数字,而不是在输入了五位时出错。
我不是在寻找一个验证器,而是一个阻止任何超过小数点后2位的输入的抑制剂。
如果有人知道如何做到这一点或能提供任何帮助,我们将不胜感激。谢谢你的帮助。
首先,编写一个修剪函数
function trimDP(x, dp) {
if (dp === 0)
return Math.floor(+x).toString();
dp = Math.pow(10, dp || 2);
return (Math.floor((+x) * dp) / dp).toString();
}
// ex.
trimDP("1.2345"); // "1.23"
接下来,将此微调功能设置为应用于按键和更改到您的<input>
,例如,通过给它们类令牌dp2
<input type="text" value="0" class="dp2" />
(function () { // do this after nodes loaded
var nodes = document.querySelectorAll('.dp2'), i;
function press(e) {
var s = String.fromCharCode(e.keyCode);
if (s === '.')
if (this.value.indexOf('.') === -1)
return; // permit typing `.`
this.value = trimDP(this.value + s);
e.preventDefault();
};
function change() {
this.value = trimDP(this.value);
}
for (i = 0; i < nodes.length; ++i) {
nodes[i].addEventListener('keypress', press);
nodes[i].addEventListener('change', change);
}
}());
您可能还想阻止非数字键
DEMO
如果这是一种预防,那么我会在php中进行,因为您几乎总能在javascript中找到绕过预防的方法。
也许还可以将它与Javascript函数结合起来,这样用户就可以获得格式化帮助,并将其作为最终的预防措施?
要在php中执行此操作,可以使用number_float()
函数:
$foo = "105";
echo number_format((float)$foo, 2, '.', ''); // Outputs -> 105.00
PHP:显示小数点后2位的数字
相关文章:
- JQuery合并了keyup和focusout两个函数
- 如何使用 node.js 比较两个 json 数组
- 为复选框javascript指定两个值
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 单击时切换两个图像
- 我可以'我似乎不知道如何修复javascript中的两个lint.有人能帮我理解吗
- 基于两个条件退出While循环
- 如何在这里将两个值最低的数字相加
- 组合两个javascript函数
- 如何使用offer/answer交换来自两个对等连接的流
- jsf中两个字符串的颜色代码差异
- 我怎样才能对浮点数进行四舍五入,使小数点后只有两个尾随数字
- 角度滤波器,用于将数字转换为具有两个小数点的数十亿
- Javascript函数避免在HTML输入文本字段中出现两个小数点(例如:12.1.1)
- 在数字相乘后返回两个小数点后的值
- 正则表达式模式为带两个小数点的单个数字
- 文本框应该只接受小数点后的两个数字
- 如何在不应用四舍五入的情况下将数字固定为两个小数点
- 如何只允许输入两个小数点
- 如何使所有的变量在javascript脚本有两个小数点