Ограничить одинарные и двойные кавычки в текстовом поле в ASP.NET

#c# #asp.net

#c# #asp.net

Вопрос:

Я хочу ограничить ввод в текстовое поле sinqles qoutes и двойные кавычки в Asp.net . Как я могу этого добиться? Как я могу проверить текстовое поле?

Комментарии:

1. Какова ваша причина для этого? Связано ли это с проблемами при вставке в SQL?

Ответ №1:

Используете ли вы AjaxControlToolkit? если да, то используйте это.

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

Где: cc1 — это имя тега для AjaxControlToolkit

если нет, сделайте это вручную

 <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() amp;amp; keyCode != "'".charCodeAt());
    }
</script>
  

Ответ №2:

Я бы использовал javascript для проверки в реальном времени с помощью события textboxes onchange . Затем вы можете использовать string.contains() метод на server-side для server-side проверки.

Ответ №3:

вы можете добавить RegularExpressionValidator и задать ValidationExpression =’^[^»]*$’ чтобы ограничить ввод кавычек

Ответ №4:

Вы могли бы сделать это на 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, "amp;#39;");
    curElement.value = curElement.value.replace(/"/g, "amp;#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> 
  

Последняя часть запрещает пользователям заключать кавычки и двойные кавычки.