<script>
function regInput(str){
reg=/^[a-z]*$/;
return reg.test(str)
}
</script>
<input type="text"
onkeypress = "return regInput(String.fromCharCode(event.keyCode))"
onpaste = "return regInput(window.clipboardData.getData('Text'))"
ondrop = "return regInput(event.dataTransfer.getData('Text'))"
style="ime-mode:Disabled"><br>
<input type="text"><br><br>
另外如果要兼容ie ,firefox netscapt三个浏览器,就不能用onkeypress事件。
而应该把onkeypress事件变成 onkeydown事件+onkeyup事件。
再keydown事件中检查,并设置标志位,在onkeyup事件中返回,类似这样
script language="javascript">
var tag;
function kd(evt) {
alert(evt.keyCode);
if (evt.keyCode >= 48 && evt.keyCode <= 57) {
tag=true;
return;
}else{
if (evt.keyCode==8){
tag=true;
return;
}
}
tag=false;
}
function kp(){
return tag;
}
</script>
至于为什么这样,自己测试一下不这样的结果吧