How to create generic (reusable) JavaScript autocomplete function

后端 未结 2 1521
[愿得一人]
[愿得一人] 2021-01-15 09:53

I now have a working JavaScript autocomplete function, thanks to help from many of you. Now I want to make the function reusable. There are three variables that need to be s

2条回答
  •  夕颜
    夕颜 (楼主)
    2021-01-15 10:25

    insin was close. The solution I worked out this morning is;

    function AutoComplete(matchFieldName, resultFieldName, lookupURL) {
        $('#' + matchFieldName).autocomplete({
            source: function(request, response) {
                $.ajax({
                    type: "POST",
                    url: lookupURL,
                    contentType: 'application/json',
                    dataType: "json",
                    data: JSON.stringify({ prefixText: request.term, count: 20 }),
                    success: function(data) {
                        var output = jQuery.parseJSON(data.d);
                        response($.map(output, function(item) {
                            return {
                                value: item.Value,
                                label: (item.Label == item.Value) ? item.Label : item.Label + "(" + item.Value + ")"
                            }
                        }));
                    },
                    error: function(XMLHttpRequest, textStatus, errorThrown) {
                        alert(textStatus);
                    }
                });
            },
            minLength: 2,
            select: function(event, ui) {
                $('#' + resultFieldName).val(ui.item.value);
            }
        });
    }
    

    On the web page:

    DOT Job Title or Number:

    And on the web page, after the tag:

    
    
    
    

提交回复
热议问题