【发布时间】:2015-09-02 22:59:23
【问题描述】:
On event change the overflow value must get rejected.
我的表单中有一个输入框,我想限制用户仅输入 0 到 99999 之间的数字。但我不想禁用选项卡按钮功能。以下代码适用于“仅限数字”,但也不允许使用 Tab 按钮。如果有人输入大于 99999 的数字,它也不会检查溢出条件。
<script>
function myIdFunction() {
var txt = "";
if (document.getElementById("EmpId").validity.rangeOverflow) {
txt = "Value too large";
}
document.getElementById("demo").innerHTML = txt;
}
</script>
<input type="text" name="id" id="EmpId" ng-model="EmpId" max="99999"
onchange="myIdFunction()" onkeypress="return IsNumeric(event);"
ondrop="return false;" onpaste="return false;" ng-disabled="!edit"
placeholder="EmpId" required>
<span id="error" style="color: Red; display: none">* Input digits (0 -)</span>
<script type="text/javascript">
var specialKeys = new Array();
specialKeys.push(8); //Backspace
function IsNumeric(e) {
var keyCode = e.which ? e.which : e.keyCode
var ret = ((keyCode >= 48 && keyCode <= 57) ||
specialKeys.indexOf(keyCode) != -1);
document.getElementById("error").style.display = ret ? "none" : "inline";
return ret;
}
</script>
【问题讨论】:
-
我建议你把所有的 js 脚本放在一起,这样格式更好,并且给你的函数起描述性的名字。
-
感谢@adminXVII,您的建议,但这只是一个试用代码。
标签: javascript html angularjs forms validation