今天在开发中,无意输入%,在Action中取值发现为空,经过查资料发现%和+是在输入后经过某些编码的,会将+转换成空,当你要在前面加上\转义符时才不会被转换。
继而今天的这些代码产生了。
function showKeyPress(evt) {
evt = (evt) ? evt : window.event
return checkSpecificKey(evt.keyCode);
}function checkSpecificKey(keyCode) {
var specialKey = "#$%\^*\'\"\+";//Specific Key list
var realkey = String.fromCharCode(keyCode);
var flg = false;
flg = (specialKey.indexOf(realkey) >= 0);
if (flg) {
alert('请勿输入特殊字符: ' + realkey);
return false;
}
return true;
}
document.onkeypress = showKeyPress;
js里面判断输入的字符不可为特殊字符:
一、document.onkeypress事件是当输入一个字符的时候就进行校验,校验时执行函授showKeyPress,
返回true的时候可输入,false不可输入。
二、evt = (evt) ? evt : window.event,是按下键盘就产生此事件获得你键入的值(是键盘的keyCode)。
var realkey = String.fromCharCode(keyCode);
String.fromCharCode()方法是把键盘值(keyCode)转换成你真实输入的值。
三、方法specialKey.indexOf(realkey):
.indexOf()是String的方法,字符串的IndexOf()方法搜索在该字符串上是否出现了作为参数传递的字符串,
如果找到字符串,则返回字符的起始位置 (0表示第一个字符,1表示第二个字符依此类推)如果说没有找到则返回 -1
四、var specialKey = "#$%\^*\'\"\+";
这里是带转义符的字符串,#、$、%、^、*、'、"、+ 这些符号是特殊符号,其中前面带\的是需要转义的。
如果要在当个文本框中加限制输入特殊符号,用<input type="text" id="name" οnkeypress="showKeyPress()">
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
有趣的CSS - 简约大方的输入框
一款简约大方的动态输入框,适用于表单提交、账号登录入口。
css 输入框 前端 ui 输入框交互 -
文本框中禁止非数字字符输入
在工作中,总是遇到很多禁止非数字字符输入的文本框,比如手机号码了 邮编了
jquery html 数字字符 css 字符输入 -
mysql 关联查询后右侧表不走索引
数据库表关联的三种方式 NESTED LOOP 对于被连接的数据子集较小的情况,nested loop连接是个较好的选择。nested loop就是扫描一个表,每读到一条记录,就根据索 引去另一个表里面查找,没有索引一般就不会是 nested loops。 一般在nested l
mysql 关联查询后右侧表不走索引 oracle 数据表关联 hash 杂谈