2013-10-02 4 views
0

У меня возникла ошибка при наборе символов в окне поиска. Я уже использовал инструмент ajax для проверки таких символов, как «/ /». При этом вам не разрешается вводить символы, объявленные вами как недопустимые. Что делать, если я буду искать символ или слово, которое содержит этот символ? Например, имя клиента, которого я хочу найти, - O'Brien, но как я буду искать, если мне не разрешено вводить этот символ?Проверка символов в текстовом поле поиска

+0

Вы не сможете это правильно?Если вы хотите разрешить им вводить это имя, просто разрешите этот символ. –

ответ

0

Вы не сможете. Вот почему вы установили это значение как invalid. Удалите значение из символов invalid, и вы сможете.

Если символ может быть действительным некоторое время, но не все время, вероятно, лучше разрешить его по умолчанию, чем заблокировать его. Таким образом, вы менее склонны нарушать конечный пользователь.

Если вам необходимо, то вам необходимо обработать символ в коде, который обрабатывает поиск.

+0

Я понимаю. Но если я удалю значение недействительным, я буду испытывать ошибки в своем окне поиска. Можно ли предотвратить такие ошибки? –

+0

Я предполагаю, что вы используете какой-то запрос к базе данных, попробуйте следующее: 'string searchText = tbSearch.Text.Replace (" '","' '");'. В SQL '' 's используются для объявления значений, вам нужно заменить то, что в строке эффективно удваивает значение, чтобы позволить SQL понять это. Конечно, если вы не используете SQL, сообщите нам об этом. – Nunners

+0

Вы пробовали использовать обратную косую черту? '\ ''? –

0

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

Решение:

Если вы используете JavaScript (jQuery), то вы можете попробовать это:

Что вы будете делать здесь, это:

  1. Сначала получите вход стоимость.

  2. Заменить символ ' будет `` (пустой).

  3. Затем проверьте, был ли это единственный персонаж.

код выглядит следующим образом:

if($('#input-id').val().replace("'", "") == "") { // only quote was written 
    $('#input-id').val(''); // and tell him to write a name.. 
} else { 
    // search for name.. 
} 

Во-вторых, я предполагаю, что вы говорите о SQL инъекций, потому что с помощью ' в SQL Select пунктом LIKE сломается запроса, поэтому я сначала попытается сообщите вам либо сохранить имя без этих символов, либо попытаться изменить их в другом формате. Здесь http://www.ascii.cl/htmlcodes.htm

В противном случае попробуйте узнать о SQL-инъекциях.

Ajax:

Вы сказали, что вы используете Ajax, так что если вы используете ASP.NET. Вы можете использовать это:

var data = Request["data"]; 
data.ToString().Replace("'", ""); 
if(data == "") { 
    // tell him to behave! 
} else { 
    // search for name.. 
} 

Это самый простой способ избавиться от этих символов без использования какого-либо плагина.

его просто JavaScript.

+0

Просто, надеюсь, будет немного более ясным, я считаю, что Ajax Tool, о котором он говорил, был [это] (http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/FilteredTextBox/FilteredTextBox.aspx) – Nunners

+0

Да, возможно! Но он никогда не рассказывал о каком-либо инструменте hehehe .. :) –

+0

Ну, он упомянул инструмент ajax: «Я уже использовал инструмент ajax для проверки таких символов, как« '/ и т. Д. », Для меня это больше похоже на контрольный инструментарий, а не простой ajax , но я полагаю, что я мог ошибаться :) – Nunners

Смежные вопросы