Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does this javascript response function do?

I saw this code in another SO post: jQuery UI Autocomplete with ASP MVC

    $("#CustomerID").autocomplete({
        source: function(request, response) {
            $.ajax({
                type: "POST",
                url: "/customer/search",
                dataType: "json",
                data: {
                    term: request.term
                },
                error: function(xhr, textStatus, errorThrown) {
                    alert('Error: ' + xhr.responseText);
                },
                success: function(data) {
                    response($.map(data, function(c) {
                        return {
                            label: c.Company,
                            value: c.ID
                        }
                    }));
                }
            });
        },
        minLength: 2,
        select: function(event, ui) {
            alert('Select');
        }
    });

I understand everything except the success function. I know that map is taking an array and mapping each value to a new object that has a label and value property and returning the new array, but I am not sure what response() does.

like image 342
Dismissile Avatar asked Mar 03 '11 15:03

Dismissile


1 Answers

This object called response is a call back function passed to the function labeled source by the autocomplete method.

see Jquery UI Autocompleate

The third variation, the callback, provides the most flexibility, and can be used to connect any data source to Autocomplete. The callback gets two arguments:

A request object, with a single property called "term", which refers to the value currently in the text input. For example, when the user entered "new yo" in a city field, the Autocomplete term will equal "new yo".

A response callback, which expects a single argument to contain the data to suggest to the user. This data should be filtered based on the provided term, and can be in any of the formats described above for simple local data (String-Array or Object-Array with label/value/both properties). It's important when providing a custom source callback to handle errors during the request. You must always call the response callback even if you encounter an error. This ensures that the widget always has the correct state.

like image 172
David Waters Avatar answered Nov 04 '22 11:11

David Waters