我想知道我怎么能阻止,不允许它在textarea上阻止“@”的消息;如果他们介绍它会向他们发出警告。
如果我想阻止8位数字,是否相同?
谢谢!
答案 0 :(得分:1)
要无法输入'@'字符,您需要按如下方式实现代码:
<textarea class="area"> </textarea>
<script>
$('.area').keypress(function(event){
if ( event.which == 64 ) {
event.preventDefault();
}
});
</script>
此实现的主要关键是event.preventDefault();
,用于放弃按键触发的事件。
64是与'@'相关的ASCII码
如果你想限制在8上输入的字符数,似乎<input type="text">
更适合你。
答案 1 :(得分:1)
您可以使用这样的代码,它会阻止用户尝试用来输入@
符号的许多类型的输入:
var text = document.getElementById('txt');
text.onkeypress = function(e){
if(e.which === 64)
{
e.preventDefault();
return false;
}
};
text.onkeydown = function(e){
if(e.ctrlKey==true && (e.which == '118' || e.which == '86'))
{
e.preventDefault();
return false;
}
};
text.oncontextmenu = function(e){
e.preventDefault();
return false;
};
text.ondrop = function(){return false; };
context menu部分与之前的IE不兼容。
注意:这只是一个很好的预防措施,我绝对建议您在后端验证此输入,因为显然有人可以修改前端页面,以便允许他们提交他们想要的任何内容。 / p>
要阻止8位数字,您必须在onsubmit
处理程序中使用正则表达式函数,以检查该字段是否包含8位数字。
答案 2 :(得分:0)
您应该阻止在前端和后端使用。
在php中,您可以轻松地使用strpos()进行检查,看看是否存在@符号。您也可以使用与preg_match()
相同的正则表达式更新:显然HTML5 textareas不支持看起来很奇怪的模式属性。所以这个前端解决方案不适用于textareas,只适用于输入。
对于HTML5,您可以使用pattern属性指定您正在使用的正则表达式。现在几乎每个浏览器都支持此功能。