如何防止用户输入'&燃气轮机';和'<';使用javascript的字符?
我想阻止用户输入“>”和“.”具有相同的键码,它还阻止用户输入“.”。对于“,”和“也会发生同样的情况,如果这是为了防止x站点脚本编写,那么您应该让控制器来处理它。或者你可以在控制器代码中进行替换 我还使用如何防止用户输入'&燃气轮机';和'<';使用javascript的字符?,javascript,Javascript,我想阻止用户输入“>”和“.”具有相同的键码,它还阻止用户输入“.”。对于“,”和“也会发生同样的情况,如果这是为了防止x站点脚本编写,那么您应该让控制器来处理它。或者你可以在控制器代码中进行替换 我还使用Server.HtmlDecode(model.value)在视图中 <%= Html.TextBox("owner", Server.HtmlDecode(Model.owner), new { @class = "ForumItemTitleEntry", name = "title
Server.HtmlDecode(model.value)代码>在视图中
<%= Html.TextBox("owner", Server.HtmlDecode(Model.owner), new { @class = "ForumItemTitleEntry", name = "title" })%>
监视击键本身比简单地验证输入字段要复杂得多。也许可以在Javascript中尝试以下内容:
document.getElementById("myTextArea").onkeyup = function() {
this.value = this.value.replace(/<|>/g, "");
}
document.getElementById(“myTextArea”).onkeyup=function(){
this.value=this.value.replace(//g,“”);
}
检查服务器端的输入。这是必要的。来自客户端的数据根本不可信。想象一下,如果有人在他们的浏览器中禁用您的脚本,将会发生什么。我建议您简单地将
替换为
,或者将它们一起删除。(或者,您也可以从任何HTML标记中删除输入。)这是一个安全而简单的解决方案
甚至比这更好的是,您可以允许发布一些HTML标记(例如,基本文本格式),并使用HTML净化剂从中删除不允许的内容。
为此,我在NSoup取得了很大成功。
关于后者,请查看。您必须检查服务器端的输入。没有其他解决办法
但作为您问题的答案,请尝试一下小代码片段
$(document).ready(function() {
$("#Notes").bind("keydown", function(ev) {
if (ev.keyCode === 226)
ev.preventDefault();
})
});
您是否试图阻止在文本框中输入
如果是这种情况,那么您可以执行以下操作
jQuery("#textid").keyUp(function(){
if (jQuery('#textid').val().indexOf('<') != -1) {
jQuery('#textid').val(jQuery('#textid').val().replace('<', ''));
}
else if(jQuery('#textid').val().indexOf('>') != -1) {
jQuery('#textid').val(jQuery('#textid').val().replace('>', ''));
}
});
jQuery(“#textid”).keyUp(函数(){
if(jQuery('#textid').val().indexOf('');
}
});
如果要识别字符键,请始终观察onkeypress而不是其他键事件,keypress将为您提供正确的键码。
我建议使用firebug,它会给你一个通知
但正如许多其他人所说,您还必须在服务器端验证这一点,同时还有许多其他方法可以将字符插入文本框。
您喜欢做的只是为了方便用户而使用的功能,仅此而已。我以前将用户输入限制为十进制数字。诚然,不太符合您的要求,但我认为仍然值得一提。您能提供您需要的代码吗tired@LeguRi是的,那应该是onchange而不是onkeyup。谢谢你的提醒。
jQuery("#textid").keyUp(function(){
if (jQuery('#textid').val().indexOf('<') != -1) {
jQuery('#textid').val(jQuery('#textid').val().replace('<', ''));
}
else if(jQuery('#textid').val().indexOf('>') != -1) {
jQuery('#textid').val(jQuery('#textid').val().replace('>', ''));
}
});