Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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_Jquery_Html - Fatal编程技术网

Javascript 仅允许输入字段中的数字

Javascript 仅允许输入字段中的数字,javascript,jquery,html,Javascript,Jquery,Html,好的。我想限制输入字段只接受最大长度为5个字符的数字 我的尝试: HTML <input type="number" maxlength="5" onKeyDown="numbersOnly(event);/> <input type="text" pattern= "[0-9]" onKeyDown="numbersOnly(event);/> Javascript function numbersOnly(event,length) {

好的。我想限制输入字段只接受最大长度为5个字符的数字

我的尝试:

HTML

 <input type="number" maxlength="5" onKeyDown="numbersOnly(event);/>
 <input type="text" pattern= "[0-9]" onKeyDown="numbersOnly(event);/>

Javascript

   function numbersOnly(event,length) 
   {  
    return event.ctrlKey || event.altKey 
    || (95<event.keyCode && event.keyCode<106)
    || (event.keyCode==8) || (event.keyCode==9) 
    || (event.keyCode>34 && event.keyCode<40) 
    || (event.keyCode==46)
    || (event.keyCode>47)&&(event.keyCode<=57) ;
   }
仅函数编号(事件、长度)
{  
return event.ctrlKey | | event.altKey

||(95我做过一次,但没能打破它。在iPad上测试

// Prevent NULL input and replace text.
$(document).on('change', 'input[type="number"]', function (event) {
    this.value = this.value.replace(/[^0-9]+/g, '');
    if (this.value < 1) this.value = 0;
});

// Block non-numeric chars.
$(document).on('keypress', 'input[type="number"]', function (event) {
    return (((event.which > 47) && (event.which < 58)) || (event.which == 13));
});
//防止空输入并替换文本。
$(文档).on('change','input[type=“number”]”,函数(事件){
this.value=this.value.replace(/[^0-9]+//g',);
如果(this.value<1)this.value=0;
});
//阻止非数字字符。
$(文档)。在('keypress','input[type=“number”]”上,函数(事件){
返回(((event.which>47)和&(event.which<58))| |(event.which==13));
});

这也是人们经常忘记的复制/粘贴和拖放文本的原因。您可以将最大长度添加到onchange中。

请注意,iOS键码与台式计算机不同。请参阅

在输入上使用
type=“number”
可以防止您通过
input.value
读取非数字输入值(然后返回空字符串),从而消除在保留有效数字的同时过滤无效用户输入(+-.e)的可能性。因此,您必须使用
type=“text”
。示例:

$('.input number')。关于('input',函数(事件){
this.value=this.value.replace(/[^0-9]/g');
});


numbersOnly
是javascript函数而不是jquery,你能告诉我们你在哪里调用这个函数吗?请看这个类似问题的答案:-你可以编写例如
支持其他键,如delete、backspace。它会接受@JonathanYes、backspace等吗?不要触发
keypress
事件。你可以如果您需要某些特殊字符,请始终在那里添加键。这不会在onchange中被删除吗?
此.value.replace(/[^0-9]+/g');
您能解释一下如何打破它吗,因为我一直无法做到。
return event.ctrlKey | event.altKey |(95我粘贴的上述代码是对您的修改。我只在数字中添加了

<input type="number" maxlength="5" onkeypress="numbersOnly(event);/>

 var numbersOnly = function(event) {
        if(event.keyCode >= 48 && event.keyCode <= 57) {
            return false;
        } else {
            event.preventDefault();
        }
    }