Member 7909353 Ответов: 2

Выберите событие не работает автозаполнение на jQuery


Автозаполнение работает, но предупреждение не вызывается в событии select.

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

<pre lang="Javascript">
function SearchText() {

            $('#<%=txtPinCode2.ClientID%>').autocomplete({
                minChars: 1,
                width: 6,                
                source: function (request, response) {
                    $.ajax({
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        url: "scm/BranchSearch.ashx?act=bnkb&BankCode=" + $('#<%=ddlBank.ClientID %> :selected').val() + "&PinCode=" + $('#<%=txtPinCode2.ClientID%>').val(),
                        data: "{}",
                        dataType: "json",
                        success: function (data) {
                            mydata = new Array();
                            for (var i = 0; i < data.length; i++) {
                                mydata.push({
                                    label: data[i].BankBranchName,
                                    value: data[i].BanckBranchCode
                                });

                            }  //end of for loop

                            //setup the search to search the label and the description
                            var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
                            response($.grep(mydata, function (arrItem) {                               
                                return matcher.test(arrItem.label);
                            }));

                        },
                        select: function (e,ui) {
                            alert(ui.item.label)
                                                   
                        },                        
                        error: function (result) {
                            alert("No Match");
                        }
                    });
                }

            });
        }

Karthik_Mahalingam

работает ли автозаполнение?

Member 7909353

да

Karthik_Mahalingam

проверьте, нет ли какой-либо ошибки в окне консоли

2 Ответов

Рейтинг:
2

Karthik_Mahalingam

переместите событие select за пределы вызова функции ajax

$('#<%=txtPinCode2.ClientID%>').autocomplete({
           minChars: 1,
           width: 6,
           source: function (request, response) {
               $.ajax({
                   type: "POST",
                   contentType: "application/json; charset=utf-8",
                   url: "scm/BranchSearch.ashx?act=bnkb&BankCode=" + $('#<%=ddlBank.ClientID %> :selected').val() + "&PinCode=" + $('#<%=txtPinCode2.ClientID%>').val(),
                   data: "{}",
                   dataType: "json",
                   success: function (data) {
                       mydata = new Array();
                       for (var i = 0; i < data.length; i++) {
                           mydata.push({
                               label: data[i].BankBranchName,
                               value: data[i].BanckBranchCode
                           });

                       }  //end of for loop

                       //setup the search to search the label and the description
                       var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
                       response($.grep(mydata, function (arrItem) {
                           return matcher.test(arrItem.label);
                       }));

                   }
               });
           }
           ,
           select: function (e, ui) {
               alert(ui.item.label)

           },
           error: function (result) {
               alert("No Match");
           }

       });


Member 7909353

Он работает, но когда я выбираю BankBranch(означает предложение), то он показывает в текстовом поле его значение, а не метку.

Karthik_Mahalingam

$. grep возвращает объект

пробовать

var temp = $. grep(mydata, function (arrItem) {
вернуться совпадений.тест(arrItem.метки);
});
ВАР пользования = [];
для (ВАР я = 0; Я &л; темп.длина; я++) {
предметы.толчок(темп[я].метки)
}
ответ(пункты);

Рейтинг:
2

Saineshwar Bageri

Привет ,

первое , что нужно сделать, это проверить консоль браузера на наличие ошибок, если нет, то посмотрите на версию jquery, на которую вы используете правильную ссылку.

просто проверьте ссылку ниже Для справки об Автозавершении.

Автоматическое заполнение текстового поля с помощью jQuery и ASP.NET MVC[^]