我正在使用Javascript。我正在尝试对keypress
事件执行函数。我想在手机号码上制作验证功能。我想只允许其中的数字。我也想允许其中的ctrl+v和ctrl+a,但我不想允许v和a作为字符。
我在这里看到了很多答案,但没有一个是完全一样的。
如果您只关心输入数字,就像您的问题中所显示的那样,那么Jquery代码将起作用。
它在keyup()
上使用,因此它也将在ctrl+v
上工作。如果有人使用右键单击进行粘贴,它将不起作用,因此,您可以禁用右键单击该字段。
如果输入值不是数字,它的工作原理是去掉输入值的最后一个字符。因此,如果用户输入25s或25ss,它将被精简为25。
实时演示
Jquery
$(document).ready(function(){
$('#number').keyup(function(){
var input = this.value;
while (isNaN(input))
{
input = input.substring(0,input.length-1);
$('#number').val(input);
}
});
//disable right click on the field
$('#number').bind("contextmenu",function(e){
return false;
});
});
您可以使用使用模式属性的HTML5输入标记。
<form>
<input name="name" value="" pattern="d+" required/>
<input type="submit"/>
</form>