Disallow typing of few of characters e.g.#39;lt;#39;, #39;gt;#39; in all input textboxes using jquery(禁止输入少量字符,例如lt;、gt;在使用 jquery 的所有输入文本框中)
问题描述
我如何做到这一点:-
当用户输入像 'abcd'
这样的字符然后 '>'
(我的应用程序的无效字符)时,我想将文本设置回 'abcd'代码>.如果我们可以像在 winforms 应用程序中那样取消输入本身,那就更好了.这应该发生在用户输入而不是点击按钮时.
How do I achieve this:-
When user types character like 'abcd'
and then '>'
(an invalid character for my application), I want to set the text back to 'abcd'
. Better if we can cancel the input itself as we do in winforms application. This should happen when user is typing and not on a click of button.
我希望将其应用于我网页中的所有文本框.如果解决方案基于 jQuery,这将很容易.可能是这样开始的.
$("input[type='text']")
I want this to be applied on all text boxes in my web page. This will be easy if the solution is jQuery based. May be something which will start like this.
$("input[type='text']")
解决方案
我使用了@jAndy 和@Iacopo 提供的两个答案(对不起,不能标记为两个答案)如下.
SOLUTION
I used both of the answer provided by @jAndy and @Iacopo (Sorry, couldn't mark as answer to both) as below.
$(document).ready(function() {
//makes sure that user cannot enter < or > sign in text boxes.
$("input:text").keyup(purgeInvalidChars)
.blur(purgeInvalidChars)
.bind('keypress', function(event) {
if (event.which === 62 || event.which === 60)
return (false);
});
function purgeInvalidChars() {
if (this.value != this.value.replace(/[<>]/g, '')) {
this.value = this.value.replace(/[<>]/g, '');
}
}
});
虽然仍然存在一个问题,即它不允许用户在文本框中选择文本,并且这只发生在 chrome 上,但在 IE 上工作正常(第一次:D),未在 Firefox 上测试.如果有人能找到解决方案或希望谷歌的人解决它会很高兴:D.
Though one issue still remained i.e. It doesn't allow user to select text in the textbox and this only happens on chrome, work fine on IE (for the first time :D), not tested on firefox. It would be glad if anyone can find solution for that or hope people at Google solves it :D.
更新
我通过 if (this.value != this.value.replace(/[<>]/g, ''))
检查解决了它.还更新了解决方案.
UPDATE
I solved it by if (this.value != this.value.replace(/[<>]/g, ''))
check. Also updated solution.
再次感谢所有回答者.
推荐答案
您应该捕获 'keyup' 和 'blur' 事件,并将它们附加到一个函数,该函数可以对输入进行组合:不要忘记用户可以粘贴无效的字符序列.
You should catch the 'keyup' and 'blur' events and attach them to a function that bonifies the input: don't forget that the user can paste an invalid sequence of characters.
例如
$('input[type="text"]').keyup(purgeInvalidChars).blur(purgeInvalidChars)
function purgeInvalidChars()
{
this.value = this.value.replace(/[<>]/g, '');
}
您肯定会改进正则表达式,也许会替换除已启用字符之外的所有字符.
surely you will improve the regexp, maybe replacing all characters except the enabled ones.
对不起,我无法测试我的代码,所以你应该把它cum grano salis :-)
Sorry, I can't test my code, so you should take it cum grano salis :-)
这篇关于禁止输入少量字符,例如'<'、'>'在使用 jquery 的所有输入文本框中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:禁止输入少量字符,例如'<'、'&a


- 如何用自己压缩一个 IEnumerable 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- 输入按键事件处理程序 2022-01-01
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01