我目前有一个数字输入脚本,其行为类似于计算器,显示数字的方式,但我想在两位数字超过小数点后停止向系列添加其他数字。
这是我到目前为止所做的,虽然限制没有正确发生。
它应该像这样工作:
1.25 - 允许
12.5 - 允许
125.5 - 允许
125.55 - 允许
123.555 - 不允许
main.jsp
........
.......
<div>
<jsp:include page="<%=NAME%>" />
</div>
.......
.........
这部分有效......
rText = document.getElementById("resultText");
function selectNumber(num) {
if (!rText.value || rText.value == "0") {
rText.value = num;
}
else {
但是这部分不起作用......任何想法???
rText.value += num;
}
}
}
答案 0 :(得分:7)
var validate = function(e) {
var t = e.value;
e.value = (t.indexOf(".") >= 0) ? (t.substr(0, t.indexOf(".")) + t.substr(t.indexOf("."), 3)) : t;
}
<input type="text" id="resultText" oninput="validate(this)" />
答案 1 :(得分:0)
我喜欢使用Math.floor和toFixed()来解决我的小数问题。
这是一个例子:
var value = 123.5555
var roundedNumber = (Math.floor(value * 100) / 100).toFixed(2)
roundedNumber将是&#34; 123.55&#34;作为一个字符串。所以,如果你想要一个数字,只需添加:
var value = 123.5555
var roundedNumber = Number((Math.floor(value * 100) / 100).toFixed(2))
现在您将值作为数字并固定为小数点后两位。
答案 2 :(得分:0)
将以前的值保存在某些数据属性中,如果超过2位小数,则恢复之前的值
可以使用Math.round(tis.value*100)/100!=tis.value
我已经使用oninput
来验证复制粘贴方案
function restrict(tis) {
var prev = tis.getAttribute("data-prev");
prev = (prev != '') ? prev : '';
if (Math.round(tis.value*100)/100!=tis.value)
tis.value=prev;
tis.setAttribute("data-prev",tis.value)
}
<input type="number" id="rText" oninput="restrict(this);" />
答案 3 :(得分:0)
只需复制粘贴此方法并在相应按钮上调用此方法,您必须在该按钮上检查此十进制验证。
function CheckDecimal(inputtxt)
{
var decimal= /^[-+]?[0-9]+\.[0-9]+$/;
if(inputtxt.value.match(decimal))
{
alert('Correct, try another...')
return true;
}
else
{
alert('Wrong...!')
return false;
}
}