Tengo un problema con jQuery UI - Autocompletar e IE8.jQuery autocompletar - Problema IE8 - esta pestaña ha sido recuperada
estoy usando combobox
método que se puede encontrar en la página web de jQuery UI - here
Básicamente, es la creación de autocompletar de entrada + menú de selección de select/option
lista.
Estoy usando jQuery 1.6.4 y jQuery UI 1.8.16; ambos desde el servidor de google
Funciona perfectamente en Chrome/FF/Opera, pero no funciona en IE8.
En IE8 - una vez que seleccione algo (después de escribir), o use el botón desplegable IE volverá a cargar la página. Tenga en cuenta que IE no se bloqueará hasta que use flechas o intente seleccionar algo.
res://ieframe.dll/acr_error.htm#,
en la URL, frente a la trayectoria real- o un mensaje
this tab has been reloaded; a problem with the page causes IE to close and reopen the page
Alguna idea de lo que está causando esto es, actuar de esa manera? Cualquier sugerencia muy apreciada. código
jQuery:
<script>
(function($) {
$.widget("ui.combobox", {
_create: function() {
var self = this,
select = this.element.hide(),
selected = select.children(":selected"),
value = selected.val() ? selected.text() : "";
var input = this.input = $("<input>")
.insertAfter(select)
.val(value)
.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;
self._trigger("selected", event, {
item: ui.item.option
});
},
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.data("autocomplete")._renderItem = function(ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.label + "</a>")
.appendTo(ul);
};
this.button = $("<button type='button'> </button>")
.attr("tabIndex", -1)
.attr("title", "Show All Items")
.insertAfter(input)
.button({
text: false
})
.removeClass("ui-corner-all")
.click(function() {
// close if already visible
if (input.autocomplete("widget").is(":visible")) {
input.autocomplete("close");
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();
});
},
destroy: function() {
this.input.remove();
this.button.remove();
this.element.show();
$.Widget.prototype.destroy.call(this);
}
});
})(jQuery);
$(document).ready(function() {
$("#combobox").combobox();
});
</script>
bien hecho! Me sorprende que CSS cause que el IE falle. – Iladarsda