Javascript 仅允许输入字段中的数字
好的。我想限制输入字段只接受最大长度为5个字符的数字 我的尝试: HTMLJavascript 仅允许输入字段中的数字,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) {
<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();
}
}