注:该方法不支持除支付宝外的手机浏览器(其他暂时不知道,但微信是不行的),因为手机浏览器会调用手机软键盘,手机软键盘是不支持我们查看e.keyCode或者e.key的,但是支持支付宝浏览器,因为支付宝浏览器在你input设置为number类型时会调起支付宝自带数字键盘,该数字键盘支持e.keyCode和e.key操作(微信不会调起微信自带的软键盘)
我们在input之前进行keydown判断
$(document).on('keydown','#textIpt',function(e){
console.log($(this).val())
console.log(e.key)
if(e.key == '.')
{
alert("请输入正确的数值,只允许输入整数!");
$(this).val(0);
return false;
}
else if(code == 88 || code == 108 ||code == 13 ){//支付宝要添加这个判断,跳过enter键和x键的判断
}else {
$(this).val(0)
}
})
之后进行input操作(进行一些最大值,最小值,默认值的修改)
$(document).on('input','#textIpt',function(){
if(Number($(this).val())>=Number(5)){
$('#textIpt').val(5)
amountNum = Number(5);
return
}
else if($(this).val()<1){
$('#textIpt').val('1')
}
else {
amountNum = Number($(this).val());
$('#textIpt').val(Math.floor(amountNum))
}
})
下面就一行html(默认值是1,在keydown操作时会先将默认值改成0,然后在input的时候赋值,否则的话是不能修改数值的,不管你输入什么,假如你最大值是5的话,你1开头,后面不管你输入什么数字都是大于等于10的,所以要先改成0,让用户可以输入小于10的数值,并且在input方法中要将他转换为Number类型,否则会出现04这样的数值)
<input id="textIpt" type="number" value="1">
lineFriends.gif