Javascript 函数可用于文本输入,但不能用于数字输入
我有一个JavaScript函数,它可以在文本输入中键入字母字符时清除文本输入Javascript 函数可用于文本输入,但不能用于数字输入,javascript,html,function,input,nan,Javascript,Html,Function,Input,Nan,我有一个JavaScript函数,它可以在文本输入中键入字母字符时清除文本输入 input=document.getElementById('inf'); input.onkeyup=函数(){ value=input.value; 真理=伊斯南(价值); 如果(真相){ input.value=''; } }; 输入{ 边框:2件纯黑; 右边距:10px; } 仅限数字 在中键入一个数字,它将保持不变。输入一个字母,输入会自动清除。数字输入不允许非数字数据,因此这将始终为false: tru
input=document.getElementById('inf');
input.onkeyup=函数(){
value=input.value;
真理=伊斯南(价值);
如果(真相){
input.value='';
}
};代码>
输入{
边框:2件纯黑;
右边距:10px;
}
仅限数字
在中键入一个数字,它将保持不变。输入一个字母,输入会自动清除。
数字输入不允许非数字数据,因此这将始终为false:
truth= isNaN(value);
相反,您可以检查按下的键是数字还是小数:
input=document.getElementById('inf');
input.onkeyup=函数(e){
if(!/[\d\.]/.test(String.fromCharCode(e.which))){
输入值=“”;
}
};代码>
当输入类型为数字时,如果文本中有非数字字符,则返回null。
所以
您只需检查空白
以及您的isNaN
检查
var truth=isNaN(值)|值==''代码>
由于输入type=number会将任何非数值转换为空白,因此htlm5数字输入(顾名思义)仅接受数值。它将忽略任何非数字字符,而不改变迄今为止输入的值。如果您希望在输入字母时清除输入(假设您有很好的理由想要这种行为),则必须从文本输入开始,并侦听关键事件。(和你一样)
"abc123" = ""
"123abc" = ""
"123" = "123"
isNaN(null) is false.