Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数可用于文本输入,但不能用于数字输入_Javascript_Html_Function_Input_Nan - Fatal编程技术网

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

我有一个JavaScript函数,它可以在文本输入中键入字母字符时清除文本输入

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.