Función de autocompletar iframe y Jquery

Estoy usando jquery autocomplete en una página html que se usa como fuente para un ifrmae. La altura y el ancho del iframe se fijan en alrededor de 450 px de ancho y 160p de alto.

Ahora el problema es que cuando el conjunto de resultados de autocompletar es un poco grande, entonces toda la configuración se estropea. lo que estoy tratando de hacer es establecer de alguna manera el índice z de los cuadros de texto para que el resultado aparezca fuera del límite del marco.

Actualmente he aumentado el tamaño del iframe, pero eso consume mucho espacio vacío.

Cualquier sugerencia sobre cómo resolver esto es bienvenida.

preguntado el 01 de febrero de 12 a las 22:02

2 Respuestas

El contenido de un iframe no puede "filtrarse" en el documento que lo contiene. Puede actualizar la altura del iframe cuando se actualice la lista de autocompletar.

Verifique cuántos elementos hay en la lista o la altura de la lista y actualice la altura del iframe en consecuencia:

$('#some-element').autocomplete({
    change : function (event, ui) {
        var theHeight = $(this).height();
    }
});

Respondido 02 Feb 12, 02:02

Eso cambiará los elementos en la página, la otra forma en que estaba pensando en hacer esto es usando getJSON ya que el archivo está en un servidor remoto, pero no puedo hacer que esto funcione. Sandhurst

Parece que puede estar tomando las decisiones incorrectas de la interfaz de usuario si la lista de autocompletar es demasiado difícil de manejar. Como Jasper (+1) dijo que la 'fuga' de iframe no sucederá, puede extender sus contenedores usando jquery, pero también puede considerar usar diferentes combinaciones de controles.

Por ejemplo, ¿podría subdividir sus datos antes del cuadro de autocompletar utilizando un control anterior como una lista de radio como filtro para los datos? Luego, cuando se haga esa elección, ajuste la fuente de datos del cuadro de autocompletar que ahora podría tener una lista más manejable quizás usando algo como:

var radioValue = $("#radio").val();
$.each(function(key, value) { 
  switch (radioValue)
  {
    case 1: 
    ... filter autocomplete data ... 
    break;
    case 2: ...
  }
});

Respondido 02 Feb 12, 03:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.