JavaScript 防止文本区域中的特殊字符
javascript preventing special characters in a textarea
我需要限制在文本区域中<>{}
以下特殊字符的使用。我正在使用这个字母数字插件进行jQuery(https://github.com/KevinSheedy/jquery.alphanum)。
我的脚本如下:
$(document).on('keyup', '#ta_0', function(e){
blacklisted_characters = $('#ta_0').alphanum({ disallow : '<>{}' }); // Specify characters to disallow
if (blacklisted_characters) {
if (!!$.prototype.fancybox)
$.fancybox.open([
{
type: 'inline',
autoScale: true,
minHeight: 30,
content: '<p class="fancybox-error">' + 'Désolé, l''utilisation de ce caractère n''est pas autorisée.' + '</p>'
}],
{
padding: 0
});
else
alert('Désolé, l''utilisation de ce caractère n''est pas autorisée.');
};
});
如果这些特殊字符已写入文本区域,则应显示弹出窗口。但是我认为我的代码中存在错误,因为它阻止我在文本区域中添加文本并每次弹出错误消息。
该插件仅适用于以下内容:
$('#ta_0').alphanum({
disallow : '<>{}'
});
这是条件,我做错了。我的文本区域的 id 是 $ta_0
.我只需要创建一个 if 条件,以便确定以下字符是否写在文本区域中<>{}
.如果这些字符写在文本区域中,它应该会触发错误弹出窗口。
任何帮助将不胜感激。
谢谢
函数:$('#ta_0').alphanum({ disallow : '<>{}' });
不返回输入字符作为值,它返回使用 jQuery 选择器选择的输入数组,在本例中为 #ta_0
.由于这些输入存在于您的页面上,因此它将始终返回 true,这会导致弹出窗口继续运行。
您必须通过几种方式重新构建代码。
- 将
$('#ta_0').alphanum({ disallow : '<>{}' });
移出键控功能 - 查找列入黑名单的输入的键码 (<>{})
- 对照这些键码检查键控函数中的事件(在本例中为
e
),以决定是否显示花哨的框。
澄清第 3 步:看起来很难用 keyup
做到这一点,因为字符都需要 Shift 键作为修饰符。但是使用 keypress
,您将获得 Shift+key 的唯一代码。
$(document).on("keypress", "#ta_0", function(event) {
blacklisted_characters = [
123, // {
125, // }
60, // <
62 // >
];
if (blacklisted_characters.indexOf(event.which) >= 0) {
alert("Désolé, l''utilisation de ce caractère n''est pas autorisée.");
}
});
我试图将其与 alphanum 插件结合起来做一个小提琴,但加载 github 用户内容似乎存在问题。但是在这里你可以看到上面代码的例子
好吧,它并不优雅,你必须稍微调整一下才能让它变得更好,但它做了我相信你需要的:
$("#myText").on("keyup",function(event){
//console.log(event.which);
if(event.which == 219 || event.which == 221 || event.which == 188 || event.which == 190)
{
$("#myText").val($("#myText").val().replace(/<|>|{|}/gi,""));
}
});
希望对您有所帮助。
相关文章:
- javascript替换换行符和特殊字符
- angularjs删除动态形式元素中的特殊字符
- 使用json_encode通过xmlhttp.responseText发送特殊字符(即caron)
- 在搜索中考虑特殊字符的
- 避免键入一些特殊字符
- Regex测试特殊字符
- 在 Javascript 中对特殊字符进行排序 (æ)
- 必须检查长度,并在文本框中允许一些特殊字符
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- 用于在Javascript中删除多个空格的特殊字符
- jQuery-Regex以防止任何特殊字符
- javascript正则表达式来识别所有特殊字符
- RegEx只获取特殊字符,前后不获取任何字符
- 如何使用JQuery检查输入(电子邮件)字段是否包含特殊字符
- Javascript:包括特殊字符的文本选择
- JavaScript 防止文本区域中的特殊字符
- 如何使用特殊字符(%,等)将字符串从文本区域更新到mysql表
- 如何使此代码更有用(防止文本区域中的特殊字符)
- 如何使用jQuery post()从文本区域转义特殊字符
- Javascript验证文本框和文本区域中的特殊字符