我在Javascript工作。我正在尝试在keypress
事件上创建一个函数。我想在手机号码上进行验证功能。我想只允许数字。我也想在这里允许 ctrl + v 和 ctrl + a ,但我不想让V和A作为字符。
我在这里看到了许多答案,但没有人完全相同。
答案 0 :(得分:1)
如果您只关心输入的数字,就像您的问题所示,这个Jquery代码将起作用。
它在keyup()
上使用,因此它也适用于ctrl+v
。如果有人使用右键单击进行粘贴,则无法正常工作,因此您只需禁用右键单击该字段即可。
如果输入值的最后一个字符不是数字,它的工作原理就是去掉它。因此,如果用户输入25秒或25秒,它将被剥离到25。
<强> Live Demo 强>
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;
});
});
答案 1 :(得分:0)
您可以使用使用模式属性的HTML5输入标记。
<form>
<input name="name" value="" pattern="\d+" required/>
<input type="submit"/>
</form>