Как не повторять код в функции выбора функции автозаполнения JQery UI - PullRequest
0 голосов
/ 17 мая 2011

У меня есть два поля автозаполнения jquery ui на большой форме (вероятно, с 40 или более полями). Пользователь может искать двумя способами, используя два разных поля автозаполнения (по имени или номеру счета). Я заполняю другие поля формы, когда пользователь выбирает свой результат поиска. Однако мне было интересно, есть ли более чистый способ сделать это.

В настоящее время это то, что у меня есть.

    $( "#search-by-custname" ).autocomplete({
    source: "cust_search_by_name.php",
    minLength: 4,
    select: function(event, ui){
        $('#Custid').val(ui.item.Custid);
        $('#Alpha1').val(ui.item.Alpha1);
        $('#CustName').val(ui.item.CustName);
    }
    });
    $( "#search-by-custalpha1" ).autocomplete({
    source: "cust_search_by_alpha1.php",
    minLength: 4,
    select: function(event, ui){
        $('#Custid').val(ui.item.Custid);
        $('#Alpha1').val(ui.item.Alpha1);
        $('#CustName').val(ui.item.CustName);
    }
    });

Файлы php извлекают данные из удаленного источника данных, и все работает нормально.

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

Я играл с написанием своей собственной функции, но я новичок в javascript и jquery.

1 Ответ

0 голосов
/ 17 мая 2011

Я не уверен на 100%, что это сработает, но я не понимаю, почему это не сработает.

    var selectFunc = function(event, ui){
        $('#Custid').val(ui.item.Custid);
        $('#Alpha1').val(ui.item.Alpha1);
        $('#CustName').val(ui.item.CustName);
    };

    $( "#search-by-custname" ).autocomplete({
    source: "cust_search_by_name.php",
    minLength: 4,
    select: selectFunc
    });
    $( "#search-by-custalpha1" ).autocomplete({
    source: "cust_search_by_alpha1.php",
    minLength: 4,
    select: selectFunc
    });
...