限制ASP.NET中文本框中的单引号和双引号

时间:2011-11-10 14:26:45

标签: c# asp.net

我想限制sinqles qoutes和双引号进入Asp.net中的文本框。我怎样才能实现它?我如何验证文本框?

4 个答案:

答案 0 :(得分:3)

您使用AjaxControlToolkit吗?若然,请使用此。

<asp:TextBox runat="server" ID="TextBox1" Width="100px" />
<cc1:FilteredTextBoxExtender FilterMode="InvalidChars" ID="ftbe_TextBox1" runat="server"
    TargetControlID="TextBox1" InvalidChars="&quot;'" />

其中:cc1是AjaxControlToolkit的TagName

如果没有,请手动执行

<asp:TextBox runat="server" ID="TextBox1" Width="100px" onkeypress="return restrictQuotes(event);" />
<script type="text/javascript">
    function restrictQuotes(evt) {
        var keyCode = evt.which ? evt.which : evt.keyCode;
        return (keyCode != '"'.charCodeAt() && keyCode != "'".charCodeAt());
    }
</script>

答案 1 :(得分:1)

我会使用javascript对文本框onchange事件进行实时验证。然后,您可以使用string.contains()上的server-side方法进行server-side验证。

答案 2 :(得分:0)

您可以添加RegularExpressionValidator并设置ValidationExpression ='^ [^ \“] * $'以限制报价输入

答案 3 :(得分:0)

你可以在javascript

中完成
<script type="text/javascript">
function fixit() {
  var numberOfElements = document.theForm.elements.length;
  for (x=0; x<numberOfElements; x++)  {
  // replace all the single, double quotes:
    var curElement = window.document.theForm.elements[x];
    curElement.value = curElement.value.replace(/\'/g, "&#39;");
    curElement.value = curElement.value.replace(/\"/g, "&#34;");
  }
  return true;
}
</script>

然后在表格中你会写这个

<form name='theForm' onSubmit='return fixit()'...

此代码将循环所有元素。如果要验证单个元素,可以阻止用户编写这些字符

在文本框中,您可以这样做:

<input type="text" name="foo" onkeypress="return fix(event);">

在javascript中:

<script type="text/javascript">
function fix(e) 
{
   if(e.charCode == 34|| e.charCode == 39)
   {
     return false;
   }
   return true;
}
</script> 

最后一部分阻止用户编写引号和双引号。