我们需要停止像'<'这样的少数字符的复制粘贴或'>'或任何可能有潜在危险的字符。
我知道我们可以将属性RequestValidation设置为false,但出于某种原因我们不希望这样做。
我们想要做的是当用户尝试在文本框中粘贴文本时,我们要验证文本并对定义的字符列表进行模式匹配以进行过滤。
我们尝试了各种文本框事件,如OnPaste(在IE中工作以及Mozilla,但在Mozilla中我们无法从剪贴板中获取内容),OnBlur(工作正常,但在单击带有runat的复选框时不起作用服务器)和其他几个没有真正进展的人。
如果我们在截止日期前帮助我并尽快帮助我,我将不胜感激!
非常感谢, 阿图尔
答案 0 :(得分:4)
首先,你真的不应该访问用户的剪贴板,即使某些版本的IE允许它。出于诚信的原因,浏览器不应该处理任何问题。无论哪种方式,您都可以在粘贴后检查文本框值,而不是在粘贴期间检查剪贴板内容。
但是,最好还是在提交时执行此验证。尝试内置的正则表达式验证器。因为实际上,您担心用户提交危险字符,而不是关于他们实际上粘贴它们的事实?
编辑(示例)
<asp:TextBox ID="txtName" runat="server"/>
<asp:RegularExpressionValidator ID="regexpName" runat="server"
ErrorMessage="This expression does not validate."
ControlToValidate="txtName" Display="Dynamic"
ValidationExpression="^[^<>]$" />
答案 1 :(得分:0)
您是否尝试在粘贴之前修改用户剪贴板中的内容?为什么不附加一个onchange事件来进行您需要的任何验证?你可以替换掉你不想要的任何字符。