ASP.NET文本框 - 避免复制粘贴几个字符

时间:2009-07-09 13:50:55

标签: asp.net events textbox

我们需要停止像'<'这样的少数字符的复制粘贴或'>'或任何可能有潜在危险的字符。

我知道我们可以将属性RequestValidation设置为false,但出于某种原因我们不希望这样做。

我们想要做的是当用户尝试在文本框中粘贴文本时,我们要验证文本并对定义的字符列表进行模式匹配以进行过滤。

我们尝试了各种文本框事件,如OnPaste(在IE中工作以及Mozilla,但在Mozilla中我们无法从剪贴板中获取内容),OnBlur(工作正常,但在单击带有runat的复选框时不起作用服务器)和其他几个没有真正进展的人。

如果我们在截止日期前帮助我并尽快帮助我,我将不胜感激!

非常感谢, 阿图尔

2 个答案:

答案 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事件来进行您需要的任何验证?你可以替换掉你不想要的任何字符。