我不知道如何做到這一點,但我相信這可以通過JavaScript或PHP完成。無論如何,我可以輸入一個只允許輸入2位小數的輸入嗎?本質上,我希望輸入在兩位小數後停止輸入數字,而不是在輸入五位數字時出錯。如何使輸入只允許輸入兩個小數位數?
我不是在尋找一個驗證器,而是一個抑制器來阻止任何超過2位小數的輸入。
如果有人知道如何做到這一點或可以提供任何幫助,將不勝感激。感謝您的任何幫助。
我不知道如何做到這一點,但我相信這可以通過JavaScript或PHP完成。無論如何,我可以輸入一個只允許輸入2位小數的輸入嗎?本質上,我希望輸入在兩位小數後停止輸入數字,而不是在輸入五位數字時出錯。如何使輸入只允許輸入兩個小數位數?
我不是在尋找一個驗證器,而是一個抑制器來阻止任何超過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"
下一步,設置此剪裁功能是應用於按鍵和onchange t您的<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);
}
}());
您可能還需要防止非數字鍵
如果這是一個預防措施,那麼我會在php中這樣做,因爲您幾乎總能找到一種解決javascript問題的方法。
也許把它與Javascript函數結合起來,這樣用戶就可以獲得格式化幫助並將其作爲一個明確的預防?
在PHP中做到這一點,你可以使用number_float()
功能:
$foo = "105";
echo number_format((float)$foo, 2, '.', ''); // Outputs -> 105.00
好的,我幾乎沒有使用JavaScript的經驗。我將如何在簡單的「HTML」頁面上設置它? – Kelsey
在您的演示中,它不允許小數點後的任何數字。 – Kelsey
@Kelsey抱歉,是的,我忘記了訂單發生的事情 - 現在修改了代碼,請再次嘗試演示 –