Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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-不使用jQuery只允许粘贴数字_Javascript_Validation_Input - Fatal编程技术网

JavaScript-不使用jQuery只允许粘贴数字

JavaScript-不使用jQuery只允许粘贴数字,javascript,validation,input,Javascript,Validation,Input,我有这个脚本,只允许数字被键入,一切都很好,但我想能够粘贴只有数字,如果用户决定使用粘贴输入 我指的粘贴是鼠标粘贴和键盘粘贴。一般情况下粘贴。我试图弄明白这一点,但似乎找不到办法 这是我的密码 //防止非数字按键 document.querySelector(“#仅限数字”).addEventListener('keypress',preventNonNumbersInput); 函数预防NonNumbersInInput(事件){ var characters=String.fromChar

我有这个脚本,只允许数字被键入,一切都很好,但我想能够粘贴只有数字,如果用户决定使用粘贴输入

我指的粘贴是
鼠标粘贴
键盘粘贴
。一般情况下粘贴。我试图弄明白这一点,但似乎找不到办法

这是我的密码

//防止非数字按键
document.querySelector(“#仅限数字”).addEventListener('keypress',preventNonNumbersInput);
函数预防NonNumbersInInput(事件){
var characters=String.fromCharCode(event.which);
如果(!(/[0-9]/.test(字符))){
event.preventDefault();
}
}
//防止粘贴非数字只能粘贴数字
document.querySelector(“#仅限数字”).addEventListener(“粘贴”,粘贴测试);
函数测试(){
//???
}

由于它是一种输入,您可以轻松地将che输入类型更改为数字。 然后,web浏览器将负责只允许数字

<input type="number" id='phone-number'>

给你

您可以创建一个
无效字符的列表
,以防止打开
按键
即粘贴

以下是工作代码:

var input=document.getElementById(“仅限数字”);
var invalidChars=[
"-",
"+",
“e”,
"."
];
addEventListener(“输入”,函数(){
this.value=this.value.replace(/[e\+\-]/gi,”);
});
input.addEventListener(“向下键”,函数(e){
如果(无效字符包括(e.key)| | e.which==38 | | e.which==40){
e、 预防默认值();
}
});
输入[type=“number”]::-webkit外部旋转按钮,
输入[type=“number”]::-webkit内部旋转按钮{
-webkit外观:无;
保证金:0;
}

Francescos answer解决了您的问题-粘贴到仅数字输入中的任何内容都将删除其余内容,或者不会粘贴任何内容,或者粘贴小写的
e
将用于
错误
它仍然允许输入非数字,因此您的建议对我无效。有可能通过粘贴事件来实现这一点吗?当我粘贴某个东西时,它会粘贴e或e's@fsofb请看我的答案。这是因为在科学概念中,e是用来定义数字的。谢谢你的建议,但我如何避免使用数字输入呢?因为我觉得那些箭头很烦人?您用来更改数字的箭头,以及我如何避免使用键盘上的箭头来更改数字。谢谢您的建议,但是我如何避免使用数字输入?因为我觉得这些箭头很烦人?用于更改数字的箭头,以及如何避免使用键盘上的箭头更改数字。@fsofb更新了答案。现在检查一下!您可以使用
CSS
隐藏它。我如何防止键盘箭头更改输入中的数字?换句话说,我注意到当我按下键盘箭头时,它会更改数字。@fsofb更新了
的答案,同时禁用键盘箭头
。过来看!谢谢vicJordan你努力通过例子教我这是我想要的事实上这是给我的客户我的客户想要用文本输入而不是数字输入如果他不同意的话我恐怕我可能不得不在相同的标题下再次问这个问题,不使用数字输入,但我会同意你的最好的答案谢谢。