jqueryui combobox (immediately event when selection change) not working

jqueryui combobox (immediately event when selection change) not working

<link href="<%= ResolveUrl("~/jquery-ui-191custom/development-bundle/themes/base/jquery.ui.all.css") %>" rel="stylesheet" type="text/css" />
<script src="<%= ResolveUrl("~/js_autocomplete/jquery-1.8.2.js") %>" type="text/javascript"></script>
<script src="<%= ResolveUrl("~/js_autocomplete/jquery-ui.js") %>" type="text/javascript"></script>
    

<style type="text/css">

    .ui-combobox 
    {
        position: relative;
        display: inline-block;
    }
    
    .ui-combobox-toggle {
        position: absolute;
        top: 0;
        bottom: 0;
        margin-left: -1px;
        padding: 0;
        /* adjust styles for IE 6/7 */
        /* *height: 1.7em;
        *top: 0.1em; lye */
    }
    .ui-combobox-input {
        margin: 0;
        /*padding: 0.3em; lye */
        width:90%; /*lye */
    }
    </style>

<body>
      <form id="form1" runat="server">
            <asp:DropDownList ID="ddlMcode" runat="server">
            </asp:DropDownList>

        <script>
            (function($) {
                $.widget("ui.combobox", {
                    _create: function() {
                        var input,
                    that = this,
                    select = this.element.hide(),
                    selected = select.children(":selected"),
                    value = selected.val() ? selected.text() : "",
                    wrapper = this.wrapper = $("<span>")
                        .addClass("ui-combobox")
                        .insertAfter(select);

                        function removeIfInvalid(element) {
                            var value = $(element).val(),
                        matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(value) + "$", "i"),
                        valid = false;
                            select.children("option").each(function() {
                                if ($(this).text().match(matcher)) {
                                    this.selected = valid = true;
                                    return false;
                                }
                            });
                            if (!valid) {
                                // remove invalid value, as it didn't match anything
                                $(element)
                            .val("")
                            .attr("title", value + " didn't match any item")
                            .tooltip("open");
                                select.val("");
                                setTimeout(function() {
                                    input.tooltip("close").attr("title", "");
                                }, 2500);
                                input.data("autocomplete").term = "";
                                return false;
                            }
                        }

                    input = $("<input>")
                    .appendTo(wrapper)
                    .val(value)
                    .attr("title", "")
                    .addClass("ui-state-default ui-combobox-input")
                    .autocomplete({
                        delay: 0,
                        minLength: 0,
                        source: function(request, response) {
                            var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
                            response(select.children("option").map(function() {
                                var text = $(this).text();
                                if (this.value && (!request.term || matcher.test(text)))
                                    return {
                                        label: text.replace(
                                            new RegExp(
                                                "(?![^&;]+;)(?!<[^<>]*)(" +
                                                $.ui.autocomplete.escapeRegex(request.term) +
                                                ")(?![^<>]*>)(?![^&;]+;)", "gi"
                                            ), "<strong>$1</strong>"),
                                        value: text,
                                        option: this
                                    };
                            }));
                        },
                        select: function(event, ui) {
                            ui.item.option.selected = true;
                            that._trigger("selected", event, {
                                item: ui.item.option
                            });
                        },
                        change: function(event, ui) {
                              alert('Value change!!');
                        }
                    })
                    .addClass("ui-widget ui-widget-content ui-corner-left");

                        input.data("autocomplete")._renderItem = function(ul, item) {
                            return $("<li>")
                        .data("item.autocomplete", item)
                        .append("<a>" + item.label + "</a>")
                        .appendTo(ul);
                        };

                        $("<a>")
                    .attr("tabIndex", -1)
                    .attr("title", "Show All Items")
                    .tooltip()
                    .appendTo(wrapper)
                    .button({
                        icons: {
                            primary: "ui-icon-triangle-1-s"
                        },
                        text: false
                    })
                    .removeClass("ui-corner-all")
                    .addClass("ui-corner-right ui-combobox-toggle")
                    .click(function() {
                        // close if already visible
                        if (input.autocomplete("widget").is(":visible")) {
                            input.autocomplete("close");
                            removeIfInvalid(input);
                            return;
                        }

                        // work around a bug (likely same cause as #5265)
                        $(this).blur();

                        // pass empty string as value to search for, displaying all results
                        input.autocomplete("search", "");
                        input.focus();
                    });

                        input
                        .tooltip({
                            position: {
                                of: this.button
                            },
                            tooltipClass: "ui-state-highlight"
                        });
                    },

                    destroy: function() {
                        this.wrapper.remove();
                        this.element.show();
                        $.Widget.prototype.destroy.call(this);
                    }
                });
            })(jQuery);

            $(function() {
            $("#ddlMcode").combobox();

            });

    </script>

      </form>
</body>

my combobox work fine, but currently the change event fired after i move the focus out from combobox, how to fire the change event when my selected item change? kindly advise. thanks.