在IE和Edge中用JS判断只能输入数字,字母,日期型。

IE的HTML:

ime-mode:disabled限制不能输入文字,只有IE有效。

//ime-mode:disabled限制不能输入文字,只有IE有效。
<input style="ime-mode:disabled" onkeypress="fncNum();return true;" />

IE的JS :只能输入数字,并且按回车时转换成Tab。

keyCode48~57:数字,keyCode13:回车,keycode9:Tab。

//IE只能输入数字,并且按回车时转换成Tab。keyCode48~57:数字,keyCode13:回车,keycode9:Tab。
function fncNum() {
	if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 13) {
		event.returnValue = false;
	} else if (event.keyCode == 13) {
		event.keyCode = 9;
	}
}

//IE只能输入数字和负数,并且按回车时转换成Tab。
function fncMinusNum(obj) {
	if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 13) {
		if (event.keyCode != 45) {
		    event.returnValue = false;
		}  
	} else if (event.keyCode == 13) {
		event.keyCode = 9;
	}
}

//IE只能输入数字和字母,并且按回车时转换成Tab。
function fncAlphabetNum(obj) {
	if (event.keyCode != 13 && !((event.keyCode >= 48 && event.keyCode <= 57) ||
        ((event.keyCode >= 65 && event.keyCode <= 90) || (event.keyCode >= 97 && event.keyCode <= 122)))) {
		event.returnValue = false;
	} else if (event.keyCode == 13) {
		event.keyCode = 9;
	}
}

//IE只能输入数字和「.」,并且按回车时转换成Tab。
function fncDecimalScale(obj) {
	if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 13 &&  event.keyCode !=46) {
		event.returnValue = false;
	} else if (event.keyCode == 13) {
		event.keyCode = 9;
	}

}

//IE只能输入数字和「/」,并且按回车时转换成Tab。
function fncDate(obj) { 
	if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 13 && event.keyCode != 47) {
		event.returnValue = false;
	} else if (event.keyCode == 13) {
		event.keyCode = 9;
	}
}

因为ime-mode:disabled只对IE有效所以在Edge里需要追加onkeyup方法。

//onkeyup方法(只能输入数字)。
<input style="ime-mode:disabled" onkeyup="this.value=this.value.replace(/\D/g,'')" onkeypress="fncNum();return true;" />

//onkeyup方法(只能输入数字和字母)。
<input style="ime-mode:disabled" onkeyup="this.value=this.value.replace(/[^0-9,a-z,A-Z]/g,'')" onkeypress="fncNum();return true;" />

//onkeyup方法(只能输入数字和「-」负号)。
<input style="ime-mode:disabled" onkeyup="this.value=this.value.replace(/[^0-9,-]/g,'')" onkeypress="fncNum();return true;" />

//onkeyup方法(只能输入数字和「/」负号)。
<input style="ime-mode:disabled" onkeyup="this.value=this.value.replace(/[^0-9,/]/g,'')" onkeypress="fncNum();return true;" />

//onkeyup方法(只能输入数字和「.」负号)。
<input style="ime-mode:disabled" onkeyup="this.value=this.value.replace(/[^0-9,.]/g,'')" onkeypress="fncNum();return true;" />

keycode补充:

document.onkeydown里:

IE和Edge:keycode48~57:字母上面数字键盘。keycode96~105:右侧数字键盘。

IE和Edge:keycode65~90:小写字母和大写字母。

IE和Edge:keycode109,189:负数里的「-」。

IE和Edge:keycode110,190:小数里的「.」。

IE和Edge:keycode111,191:日期里的「/」。

input的onkeypress里:

IE和Edge:keycode48~57:字母上面数字键盘和右侧数字键盘。

IE和Edge:keycode97~122:小写字母。keycode65~90:大写字母。

IE和Edge:keycode45:负数里的「-」。

IE和Edge:keycode46:小数里的「.」。

IE和Edge:keycode47:日期里的「/」。

如果资源学习了,可以点赞支持!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值