[英]Removing Non-Digits on an Input with type=“number” causes Digits to be removed too
我正在使用以下功能从onkeyup的输入字段中删除非数字字符(如发布在许多地方)。 该功能对于文本输入来说效果很好,但是当链接到数字输入时,键入非数字字符会完全删除数字输入。
思考?
function RemoveNonNumeric(e)
{
var el = e.target;
el.value = el.value.replace(/\D/g,"");
return;
}//end RemoveNonNumeric
当数字输入字段中出现一个非数字字符时,会发生什么……该值将为空。 解决此问题的一种方法是保存最后一个真数字值,如果当前值变为空值,则将其替换为当前值。 似乎有点骇人听闻,但请查看它是否适合您:
var lastNumericValue = 0;
function RemoveNonNumeric(e)
{
if(e.keyCode === 8)
return;
var el = e.target;
if(el.value === "") {
el.value = lastNumericValue;
} else {
lastNumericValue = el.value;
}
}
再三考虑...如何防止放置非数字值而不是事后将其删除? 运行以下onkeypress
function RemoveNonNumeric(e) {
if (e.which < 48 || e.which > 57) {
e.preventDefault();
}
};
如果您进行调试,则会发现当number
输入的值无效时, el.value
返回一个空字符串。 我不知道解决方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.