簡體   English   中英

如何輸入只允許輸入兩個小數位?

[英]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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM