我们给文本框指定一个新的属性invalidchars,凡是在invalidchars里的字符,都是不允许
输入的,怎样实现这个功能呢?看下面的例子:<html>
<head>
<title>阻止向文本框输入特定的字符</title>
<script type=”text/javascript”>
function blockChars(oTextbox,oEvent){
var sInvalidChars=oTextbox.getAttribute(“invalidchars”);
if(oEvent.keyCode){//在IE环境下
var sChar=String.fromCharCode(oEvent.keyCode);
}
else{//非IE下
var sChar=String.fromCharCode(oEvent.charCode);
}
var bIsValidChar=sInvalidChars.indexOf(sChar)==-1;
return bIsValidChar;
}
</script>
</head>
<body>
<form name=”f1″ id=”f1″ action=”" method=”post”>
<table border=”0″>
<tr>
<td>Login:</td>
<td><input type=”text” name=”login” id=”login” invalidchars=”0123456789″
onkeypress=”return blockChars(this,event)” />
</td>
</tr>
<tr>
<td>Password:</td>
<td><input type=”password” name=”password” id=”password”
invalidchars=”abcdefghijklmnopqrstuvwxyz”
onkeypress=”return blockChars(this,event)” />
</td>
</tr>
<tr>
<td colspan=”2″ align=”center”><input type=”submit” /></td>
</tr>
</table>
</form>
</body>
</html>
\n
上面的例子里,第一个文本框我们指定invalidchars的值为”0123456789″,这样所有的数字
都会被阻止输入进去,第二个文本框里所有的小写字母都不允许输入进去。这里通过
blockChars来实现这个功能,blockChars函数有两个参数,第一个参数oTextbox引用文本框
对象,第二个参数是当前发生的事件对象,keypress事件属于键盘事件,当发生键盘事件时,
我们能够通过事件对象的keyCode属性(For IE)或者charCode属性(其他浏览器)获取当前按
键的Unicode值,然后可以通过String.fromCharCode()方法把Unicode值转化为对应的字符。
通过oTextbox的getAttribute()方法获取属性invalidchars的值,然后看当前按下的键盘键
值是否被包括在invalidchars的值里面,如果在,返回false,阻止字符的输入。否则,返回
true,允许输入。
\n
\n