请问如何防止输入\斜杠键

神秘的蒙面大虾 2014-02-14 04:27:06

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript">
function test(){
if(event.keyCode==220){
alert("触发\斜杠键");
}
}
</script>
<title>test</title>
</head>
<body>
<input id="abc" onkeydown="test();">
</body>
</html>


做了个简单的例子,目的是防止输入框输入“\”斜杠。
但是这么做的话,按下斜杠确实是触发了,但是输入框里面会有个斜杠,有啥办法在保证执行效率上按下斜杠后触发并且输入框里面不能有斜杠。
...全文
430 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
非常感谢各位,问题解决了。 (PS:不过如果是在中文模式下输入“\”是“、”就无法屏蔽“、”的输入,略有些不完美呵呵)
scscms太阳光 2014-02-14
  • 打赏
  • 举报
回复
为什么不阻止复制行为:<input onkeyup="value=value.replace(/\\/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/\\/g,''))" />
嘻哈大咖秀 2014-02-14
  • 打赏
  • 举报
回复
引用 5 楼 GhostTZS 的回复:
如果用onkeydown的话输入框里面还是会有\斜杠,那如果用onkeydown能否做到按下后输入框没有\斜杠么
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <script type="text/javascript">
     function test(obj,e){
      if(e.keyCode==220){
      	if (typeof window.addEventListener != 'undefined') {
		  obj.addEventListener('keyup',function(){obj.value = obj.value.substring(0,obj.value.length -1);});
		} else {
		  obj.attachEvent('keyup',function(){obj.value = obj.value.substring(0,obj.value.length -1);});
		}      
      }
     }
    </script>    
    <title>test</title>
  </head>  
  <body>
    <input id="abc" onkeydown ="test(this,event);">
  </body>
</html>
Go 旅城通票 2014-02-14
  • 打赏
  • 举报
回复
引用 8 楼 GhostTZS 的回复:
@showbo alert语句去除确实可以,不过如果我下面还要执行其他代码呢 会影响嘛。

           if (e.keyCode == 220) {
                e.preventDefault ? e.preventDefault() : e.returnValue = false;
                ...
                ...
                ...
            }
不会影响他们的代码,alert会挂起代码执行,导致preventDefault执行失败什么的
泡泡鱼_ 2014-02-14
  • 打赏
  • 举报
回复
补充一下.省得误导LZ.只有仅字符键的事件捕捉你可以使用onkeypress,如果是系统功能键,非字符键的你需要使用onkeydown
泡泡鱼_ 2014-02-14
  • 打赏
  • 举报
回复
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
  <head> 
     
    <title>test</title>
    <script type="text/javascript"> 
    function test(ev){
        ev  = ev  ||  window.event;
        var _key = ev.keyCode || ev.which;
        //需要注意的是:onkeydown与onkeypress获取的keyCode是不同的 
        if(_key == 92){
            alert("触发\斜杠键");
            ev.preventDefault  ? ev.preventDefault() : (ev.returnValue = false);  
        } 
    } 
    </script> 
  </head>   
  <body> 
    <input type="text" id="abc" onkeypress="test(event);"/> 
  </body> 
</html>
Go 旅城通票 2014-02-14
  • 打赏
  • 举报
回复
引用 7 楼 GhostTZS 的回复:
@showbo 你的这个方法输入框里面还是会有斜杠。
奇怪,都什么版本的chrome,我这里 25.0.1364.172 m 没有问题。。最近碰到一个也说阻止不了字符输入,不行你就只能替换了
  • 打赏
  • 举报
回复
@showbo alert语句去除确实可以,不过如果我下面还要执行其他代码呢 会影响嘛。

           if (e.keyCode == 220) {
                e.preventDefault ? e.preventDefault() : e.returnValue = false;
                ...
                ...
                ...
            }
  • 打赏
  • 举报
回复
@showbo 你的这个方法输入框里面还是会有斜杠。
Go 旅城通票 2014-02-14
  • 打赏
  • 举报
回复

忘记贴我修改的html代码了。。不要加alert语句,要不阻止不了

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript">
function test(e) {
if (e.keyCode == 220) {
e.preventDefault ? e.preventDefault() : e.returnValue = false;
}
}
</script>
<title>test</title>
</head>
<body>
<input id="abc" onkeydown="test(event);">
</body>
</html>
  • 打赏
  • 举报
回复
这个方法确实可行。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <script type="text/javascript">
     function test(obj){
      if(event.keyCode==220){
       obj.value = obj.value.substring(0,obj.value.length -1);
      }
     }
    </script>    
    <title>test</title>
  </head>  
  <body>
    <input id="abc" onkeyup ="test(this);">
  </body>
</html>
如果用onkeydown的话输入框里面还是会有\斜杠,那如果用onkeydown能否做到按下后输入框没有\斜杠么


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <script type="text/javascript">
        function test(e) {
            if (e.keyCode == 220) {
                e.preventDefault ? e.preventDefault() : e.returnValue = false;
                alert("OK");
            }
        }
    </script>    
    <title>test</title>
  </head>  
  <body>
<input id="abc" onkeydown="test(event);">
  </body>
</html>
allali 2014-02-14
  • 打赏
  • 举报
回复

<input id="abc" onkeydown="test(event);">
  • 打赏
  • 举报
回复

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <script type="text/javascript">
        function test(e) {
            if (e.keyCode == 220) {
                e.preventDefault ? e.preventDefault() : e.returnValue = false;
                alert("OK");
            }
        }
    </script>    
    <title>test</title>
  </head>  
  <body>
    <input id="abc" onkeydown="test();">
  </body>
</html>
Chrome浏览器下无反应。
嘻哈大咖秀 2014-02-14
  • 打赏
  • 举报
回复
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <script type="text/javascript">
     function test(obj){
      if(event.keyCode==220){
       obj.value = obj.value.substring(0,obj.value.length -1);
      }
     }
    </script>    
    <title>test</title>
  </head>  
  <body>
    <input id="abc" onkeyup ="test(this);">
  </body>
</html>
Go 旅城通票 2014-02-14
  • 打赏
  • 举报
回复
        function test(e) {
            if (e.keyCode == 220) {
                e.preventDefault ? e.preventDefault() : e.returnValue = false;
            }
        }

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧