2011-07-16 15 views

Respuesta

26

Así es como funciona el autocompletado de jquery ui cuando proporciona una etiqueta y un valor. Si desea que la etiqueta vuelva al campo de búsqueda, cambie el nombre del campo de valor.

violín Actualizado: http://jsfiddle.net/jensbits/bM7ck/3/

+0

+1: Esta es una manera de ir si el PO puede cambiar los datos. –

+0

Gracias, gracias ¡Gracias! Una solución simple y funciona. – chrisk

+1

De nada. Te gané, así que deberías poder darle a Andrew un +1 por su sugerencia de enfoque. Esfuerzo de equipo. –

17

estás cerca, sólo tiene que:

  1. Añadir return false hasta el final de su controlador de eventos select y
  2. Añadir un controlador de eventos para el focus evento para que también pueda anularlo, utilizando la etiqueta en lugar del valor.

Aquí es el código de actualización:

$("#search").catcomplete({ 
    delay: 0, 
    source: data, 
    select: function(event, ui) { 
     $('#search').val(ui.item.label); 
     $('#searchval').val(ui.item.value); 
     return false; // Prevent the widget from inserting the value. 
    }, 
    focus: function(event, ui) { 
     $("#search").val(ui.item.label); 
     return false; // Prevent the widget from inserting the value. 
    } 
}); 

He aquí un ejemplo actualización: http://jsfiddle.net/q2kDU/

+0

He ido con la solución de Jen, pero he agregado su sugerencia de enfoque. Gracias por su ayuda. – chrisk

+0

@chrisk: No hay problema. La solución de Jen es una buena forma de hacerlo. –

2
$(function() { 
     $("#searchitems").autocomplete({ 
      source: [<?php echo $search /*example for full list in php*/?>], 
      minLength: 2, 
      select: function(event, ui) { 
       event.preventDefault(); 
       $("#searchitems").val(ui.item.label); 
       $('#searchitemvalue').val(ui.item.value); 
       window.location="#"; //location to go when you select an item 
      }, 
      focus: function(event, ui) { 
       event.preventDefault(); 
       $("#searchitems").val(ui.item.label); 
       $('#searchitemsvalue').val(ui.item.value); 
      } 
     }); 
    }); 
+1

Alguna explicación hubiera sido agradable aquí –

Cuestiones relacionadas