Pastebin

Paste #2505: survey code 2

< previous paste - next paste>

Pasted by Chrivers

Download View as text

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

            input = $("<input>")
                                        .appendTo(wrapper)
                                        .val(value)
                                        .addClass("ui-state-default")
                                        .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.split('_')[0],
                                                            option: this
                                                        };
                                                }));
                                            },
                                            select: function (event, ui) {
                                                ui.item.option.selected = true;
                                                self._trigger("selected", event, {
                                                    item: ui.item.option

                                                    //
                                                });
                                                fireWhenSelected(ui.item);
                                            },
                                            change: function (event, ui) {
                                                if (!ui.item) {
                                                    var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex($(this).val()) + "$", "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
                                                        $(this).val("");
                                                        select.val("");
                                                        input.data("autocomplete").term = "";
                                                        return false;
                                                    }
                                                }
                                            }
                                        })
                                        .addClass("ui-widget ui-widget-content ui-corner-left");
                                        input.val( $(select).find("option:selected").text());

            input.data("autocomplete")._renderItem = function (ul, item) {
                return $("<li></li>")
                                                .data("item.autocomplete", item)
                                                .append("<a><div class='incom_autocompl_col1'>" + item.label.split('_')[0] + "</div><div class='incom_autocompl_col2'>" + item.label.split('_')[1] + "</div><div class='incom_autocompl_col3'>" + item.label.split('_')[2] + "</div></a>")
                                                .appendTo(ul)
            };
            $("<a>")
                                        .attr("tabIndex", -1)
                                        .attr("title", "Show All Items")
                                        .appendTo(wrapper)
                                        .button({
                                            icons: {
                                                primary: "ui-icon-triangle-1-s"
                                            },
                                            text: false
                                        })
                                        .removeClass("ui-corner-all")
                                        .addClass("ui-corner-right ui-button-icon")
                                        .click(function () {
                                            // close if already visible
                                            if (input.autocomplete("widget").is(":visible")) {
                                                input.autocomplete("close");
                                                $('.incom_test').toggle();
                                                return;
                                            }

                                            // work around a bug (likely same cause as #5265)
                                            $(this).blur();
                                            $('.incom_test').toggle();
                                            // pass empty string as value to search for, displaying all results
                                            input.autocomplete("search", "");
                                            input.focus();
                                        });
        },

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

$(function () {
    $("#combobox").combobox();
    $("#toggle").click(function () {
        $('.incom_test').toggle();
        $("#combobox").toggle();
    });
});

/*
    event når der vælges et item i combocoxen
*/
function fireWhenSelected(item) {
    var selectedItem = $('#' + item.option.value);
    if (selectedItem.length > 0) {
        window.location.href = selectedItem[0].href;
    }
}

$(document).ready(function () {
//    var t = '';
//    $('.ui-autocomplete ul').append("<li></li>");
    $('.ui-combobox input').attr('value','');
})


New Paste


Do not write anything in this field if you're a human.

Go to most recent paste.