我不知道该怎么做,但我相信它可以用JavaScript或PHP完成。无论如何我可以输入只允许输入2位小数?基本上,我希望输入在两位小数后停止输入数字,而不是在输入五位时给出错误。
我不是在寻找一个验证器,而是一个阻止输入超过2位小数的输入器。
如果有人知道如何做或者可以提供任何帮助,我们将不胜感激。谢谢你的帮助。
答案 0 :(得分:1)
如果这是一种预防措施,那么我会在php中进行预防,因为你几乎总能在javascript中找到预防方法。
也许将它与Javascript功能结合起来,以便用户获得格式化帮助并将其作为明确的预防措施?
要在php中执行此操作,您可以使用number_float()
函数:
$foo = "105";
echo number_format((float)$foo, 2, '.', ''); // Outputs -> 105.00
答案 1 :(得分:1)
首先,编写修剪功能
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"
接下来,将此修剪功能设置为应用于按键和 onchange 到<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);
}
}());
您可能还想阻止非数字键