我试图阻止用户输入<或者>使用JavaScript进入我的表单字段。这是我到目前为止所做的:
$(document).on('keydown', function (e) {
regex = new RegExp("\<|>");
var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
});
它仍然允许这些角色,我该如何阻止它?
答案 0 :(得分:5)
为什么要费心翻译呢?我喜欢保持简单:
$(document).on('keypress', function (e) {
if ((e.which == 62) || (e.which == 60)) { // greater than or less than key pressed
e.preventDefault();
}
});
编辑添加:
如果条件基于@Samsquanch反馈,则交替显示:
if ((String.fromCharCode(e.which) == '>') || (String.fromCharCode(e.which) == '<')) { // greater than or less than key pressed
答案 1 :(得分:3)
值得注意的两件事:
<
和>
密钥代码因操作系统而异。和键盘布局。硬编码密钥代码不会一直有效对于跨操作系统和跨键盘布局解决方案(虽然不是很干净),您可以这样做:
$(document).on('keyup', 'input, textarea', function (e) {
regex = new RegExp("\<|>");
var val = $(this).val();
$(this).val(val.replace(regex, ''));
});
这会从keyup上的输入中删除<
和>
个键。用户将看到这种情况发生,但它应始终捕获所需的键并剥离它们。