Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET文本框-避免复制粘贴几个字符_Asp.net_Events_Textbox - Fatal编程技术网

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

ASP.NET文本框-避免复制粘贴几个字符,asp.net,events,textbox,Asp.net,Events,Textbox,我们需要停止复制粘贴少数字符,如“”或任何可能有潜在危险的字符 我知道我们可以将属性RequestValidation设置为false,但出于某种原因,我们不希望这样做 我们要做的是,当用户尝试将文本粘贴到文本框中时,我们要验证文本,并根据定义的待筛选字符列表进行模式匹配 我们尝试了各种文本框事件,如OnPaste(在IE和Mozilla中都适用,但在Mozilla中我们无法从剪贴板中获取内容)、OnBlur(工作正常,但在runat作为服务器单击复选框时不起作用)和其他一些没有实际进展的事件

我们需要停止复制粘贴少数字符,如“”或任何可能有潜在危险的字符

我知道我们可以将属性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="^[^<>]$" />