Member 13375921 Ответов: 2

Ограничить апострофы в моем текстовом поле


Как я могу ограничить пользователя, чтобы войти только апострофы в моей текстовое поле, используя ajaxControl

Что я уже пробовал:

я попробовал этот код
document.getElementById ('yourTextBoxID'). onkeypress = функция () {
if (event. keyCode = = = 39)
возвращать false;
}
};​
но я не хочу в java script.
я хочу использовать управление Ajax.

Graeme_Grant

Цитата: "но я не хочу в java script"

Ваши требования являются клиентскими, у вас действительно нет выбора.

Richard Deeming

1) Вы говорите, что хотите, чтобы пользователь мог вводить только апострофы, но ваш код, похоже, предполагает, что вы имели в виду обратное.

2) Вы действительно вы уверены, что хотите запретить таким людям, как Пит О'Хэнлон, пользоваться вашим сайтом?!

3) мой хрустальный шар говорит мне, что вы пишете код, который уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.

Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]

2 Ответов

Рейтинг:
2

W∴ Balboos, GHB

Я использую это для ввода только чисел (javaScript):

function intOnly(teststring) {
var len = testString.length;
  if(len > 0)
    testString = testString.replace(/\D/g , "");

return teststring;
} // function intOnly(teststring)


Я использую функцию return для обновления значения элемента управления.
В зависимости от того, что вы делаете, вы можете использовать одно или несколько событий для запуска теста, таких как onkeyup() или onblur().   Если вы используете onchange (), он часто будет совершать две поездки к функции - или даже застревать в вечном цикле.

Теперь-переходим к регулярному выражению (регулярным выражениям) руководство[^] и узнайте, как вы можете обрабатывать любой текст для любых символов.


Рейтинг:
1

OriginalGriff

Вы не хотите выполнять проверку символов ключ за ключом на сервере - это монументально неэффективно, невероятно расточительно в пропускной способности, ресурсах и серверной обработке и вводит переменную, но неприятную степень задержки для пользователя.

Вы выполняете такую обработку локально на клиенте, а не на сервере - и это означает javascript, потому что это единственный язык, который работает на клиенте. Весь VB-код выполняется на сервере.


Цитата:
Но это тоже не работает.
document.getElementById('yourTextBoxID').onkeypress = function () {
if (event.keyCode === 39)
return false;
}
};​

Пожалуйста, кто-нибудь помогите, все мое приложение застряло из-за этой проблемы.


Попробовать это:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>  
  <head>  
    <meta http-equiv="content-type" content="text/html; charset=windows-1250">  
    <title></title> 
    <script type="text/javascript">
      function blockSpecialChar(e) {
          var k = e.keyCode;
          return (k != 39);
      }
    </script>
  </head>  
  <body>
     <form id="frm" runat="server">
       <input type="text" name="name"  onkeypress="return blockSpecialChar(event)"/>
     </form>
  </body>
</html>


Member 13375921

Но это тоже не работает.
document.getElementById ('yourTextBoxID'). onkeypress = функция () {
if (event. keyCode = = = 39)
возвращать false;
}
};​
Пожалуйста, кто-нибудь помогите, все мое приложение застряло из-за этой проблемы.

OriginalGriff

Ответ обновлен