ASP.NET文本框-避免复制粘贴几个字符
我们需要停止复制粘贴少数字符,如“”或任何可能有潜在危险的字符 我知道我们可以将属性RequestValidation设置为false,但出于某种原因,我们不希望这样做 我们要做的是,当用户尝试将文本粘贴到文本框中时,我们要验证文本,并根据定义的待筛选字符列表进行模式匹配 我们尝试了各种文本框事件,如OnPaste(在IE和Mozilla中都适用,但在Mozilla中我们无法从剪贴板中获取内容)、OnBlur(工作正常,但在runat作为服务器单击复选框时不起作用)和其他一些没有实际进展的事件 如果你们中的任何人能帮助我,并在我们的最后期限内尽快帮助我,我将不胜感激 非常感谢,ASP.NET文本框-避免复制粘贴几个字符,asp.net,events,textbox,Asp.net,Events,Textbox,我们需要停止复制粘贴少数字符,如“”或任何可能有潜在危险的字符 我知道我们可以将属性RequestValidation设置为false,但出于某种原因,我们不希望这样做 我们要做的是,当用户尝试将文本粘贴到文本框中时,我们要验证文本,并根据定义的待筛选字符列表进行模式匹配 我们尝试了各种文本框事件,如OnPaste(在IE和Mozilla中都适用,但在Mozilla中我们无法从剪贴板中获取内容)、OnBlur(工作正常,但在runat作为服务器单击复选框时不起作用)和其他一些没有实际进展的事件
首先,你真的不应该访问用户的剪贴板,即使某些版本的IE允许。出于完整性的考虑,这根本不是一个浏览器应该处理的问题。无论哪种方式,您都可以在粘贴后检查文本框值,而不是在粘贴过程中检查剪贴板内容 但是,更好的方法可能是在提交时执行此验证。尝试内置的正则表达式验证器。因为真的,你担心用户提交危险的字符,对吧,而不是他们实际上粘贴了这些字符 编辑(示例)
首先,你真的不应该访问用户的剪贴板,即使某些版本的IE允许。出于完整性的考虑,这根本不是一个浏览器应该处理的问题。无论哪种方式,您都可以在粘贴后检查文本框值,而不是在粘贴过程中检查剪贴板内容 但是,更好的方法可能是在提交时执行此验证。尝试内置的正则表达式验证器。因为真的,你担心用户提交危险的字符,对吧,而不是他们实际上粘贴了这些字符 编辑(示例)
粘贴之前,您是否试图修改用户剪贴板中的内容?为什么不附加一个onchange事件来执行所需的任何验证?您可以替换掉不需要的任何字符。粘贴前是否尝试修改用户剪贴板中的内容?为什么不附加一个onchange事件来执行所需的任何验证?您可以替换掉不需要的任何字符。谢谢。我们试过这个,在大多数情况下效果很好。这里只有一个问题。我只是想知道我们是否能比我想的更优雅地处理这件事。当用户粘贴危险字符,并单击导致回发的其他控件(如复选框)时,提交请求会识别字符并停止回发。但复选框值会发生更改。下拉列表也会发生同样的情况。我正在考虑存储这些值,并在提交停止时重置它们。有没有更干净的办法?谢谢,Atul+1。另外,如果该字段是必需的,请确保也在其上使用RequiredFieldValidator,因为RegularExpressionValidator本身并不强制该字段,它只在有内容时检查该字段(允许空白或空白条目,且未验证)@Atul:如果我理解正确,我认为您可以在validator标签中添加EnableClientScript=“false”。这将阻止客户端验证,因此不会立即收到反馈,但会在提交时进行验证。看看这是否有帮助。@Ahmad:这需要实际提交危险字符,但是,如果EventValidation未被禁用,则会引发异常Hanks d。我们试过这个,在大多数情况下效果很好。这里只有一个问题。我只是想知道我们是否能比我想的更优雅地处理这件事。当用户粘贴危险字符,并单击导致回发的其他控件(如复选框)时,提交请求会识别字符并停止回发。但复选框值会发生更改。下拉列表也会发生同样的情况。我正在考虑存储这些值,并在提交停止时重置它们。有没有更干净的办法?谢谢,Atul+1。另外,如果该字段是必需的,请确保也在其上使用RequiredFieldValidator,因为RegularExpressionValidator本身并不强制该字段,它只在有内容时检查该字段(允许空白或空白条目,且未验证)@Atul:如果我理解正确,我认为您可以在validator标签中添加EnableClientScript=“false”。这将阻止客户端验证,因此不会立即收到反馈,但会在提交时进行验证。看看这是否有帮助。@Ahmad:这需要实际提交危险的字符,如果EventValidation未被禁用,则会引发异常
<asp:TextBox ID="txtName" runat="server"/>
<asp:RegularExpressionValidator ID="regexpName" runat="server"
ErrorMessage="This expression does not validate."
ControlToValidate="txtName" Display="Dynamic"
ValidationExpression="^[^<>]$" />