Member 13359208 Ответов: 0

Автозавершение не работает должным образом ASP.NET jquery


Я написал код jquery для автозаполнения в текстовом поле с событием onkeypress, он работает правильно, пока текстовое поле пусто, но когда я использую ctrl+a или shift+tab и набираю для поиска какую-то вещь, он добавляет старые данные, которые приводят к неправильному поиску

например, если я ищу "1" в текстовом поле, он показывает список всех записей с 1, но предположим, что я нажал ctrl+a или shift+tab и ввел "2", он показывает список "12" вместо "2"

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

<asp:TextBox ID="txtDrg" onkeypress="SearchText('DRG',this,event);" runat="server" ></asp:TextBox>

function SearchText(searchType, searchKey, event) {
if (searchType != '' && searchKey != '') {
    var x = event.which || event.keyCode;
    var searchKeyWord = '';

    if (searchType == 'DRG') {

        if (x == 8 || x == 46) {
            if (searchKey.value.length > 0) {
                searchKeyWord = searchKey.value.toString().slice(0, -1);
            }
        }
        else {
            if (x == 110 || x == 190)
                searchKeyWord = '.';
            else
                searchKeyWord = String.fromCharCode(x);
            if (searchKey.value != '' || searchKey.value != undefined)
                searchKeyWord = searchKey.value + searchKeyWord;
        }
        if (valiadte)
            GetAutoData(searchType, searchKeyWord);
    }
}
}
function GetAutoData() {
   //code 
}

Sinisa Hajnal

Исключите управляющие клавиши из вашего события, чтобы оно не вызывало SearchText, когда вы нажимаете Ctrl, Tab, Alt или что-то еще. Может помочь. Я признаю, что не являюсь экспертом по html-событиям, если onkeypress уже игнорирует их, игнорируйте этот комментарий :)

0 Ответов