[英]How to Make Input Only Allow Two Decimal Places to be Entered?
我不知道如何做到這一點,但我相信它可以用JavaScript或PHP完成。 無論如何我可以輸入只允許輸入2位小數? 基本上,我希望輸入在兩位小數后停止輸入數字,而不是在輸入五位時給出錯誤。
我不是在尋找一個驗證器,而是一個阻止器來阻止任何輸入超過2位小數的東西。
如果有人知道如何做到這一點或可以提供任何幫助,將不勝感激。 感謝您的任何幫助。
如果這是一個預防,那么我會在PHP中這樣做,因為你幾乎總能在javascript中找到預防方法。
也許將它與Javascript函數結合使用,以便用戶獲得格式化幫助並將其作為明確的預防措施?
要在php中執行此操作,您可以使用number_float()
函數:
$foo = "105";
echo number_format((float)$foo, 2, '.', ''); // Outputs -> 105.00
首先,編寫修剪功能
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);
}
}());
您可能還想要阻止非數字鍵
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.