我想知道如何阻止而不允许在文本区域上使用"@"的ussage;如果他们介绍它,就会给他们一个警告。
如果我想阻止8位数字到,是一样的吗?
谢谢!
要无法键入'@'字符,您需要实现如下代码:
<textarea class="area"> </textarea>
<script>
$('.area').keypress(function(event){
if ( event.which == 64 ) {
event.preventDefault();
}
});
</script>
此实现的主键是event.preventDefault();
,用于放弃按键触发的事件。
64是与"@"相关的ASCII码
如果你想限制键入的字符数为8,那么<input type="text">
似乎更适合你。
您可以使用这样的代码,它可以阻止用户尝试用于输入@
符号的许多类型的输入:
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; };
jsFiddle此处
上下文菜单部分与早期的IE不兼容。
注意:这只是一种预防措施,我绝对建议您也在后端验证此输入,因为很明显,有些人只需修改前端页面,就可以提交他们想要的任何内容。
要阻止8位数字,您必须在onsubmit
处理程序中使用regex函数来检查字段是否包含8位数字。
您应该防止在前端和后端使用。
在php中,您可以很容易地使用strpos()检查是否存在@符号。您也可以将以下相同的regex与preg_match()一起使用
更新:显然HTML5文本区域不支持模式属性,这对我来说很奇怪。所以这个前端解决方案不适用于文本区域,只适用于输入。
对于HTML5,您可以使用pattern属性来指定您想要的regex。现在几乎所有浏览器都支持这一点。