jquery jquery-ui jquery-ui-autocomplete

jQueryUI Valor de autocompletado diferente a la etiqueta



jquery-ui jquery-ui-autocomplete (1)

No hay una forma integrada de hacer esto. En su lugar, debe anular el evento de select y actualizar el valor de input usted mismo;

$("#eventAccount").on("autocompleteselect", function (e, ui) { e.preventDefault(); // prevent the "value" being written back after we''ve done our own changes this.value = ui.item.label; // Put ui.item.value somewhere });

Tengo un jQuery UI Autocomplete que funciona bien, si el objeto json devuelto tiene este aspecto:

label:name value:name

Luego busca a través de mi nombre y cuando el usuario selecciona uno, llena el cuadro de entrada con mi nombre.

Pero lo que quiero es que el objeto json se vea así:

label:name value:id

Cuando hago esto, el autocompletado llena el cuadro de entrada con el número de identificación en lugar de la cadena de nombre.

¿Cómo puedo hacer que el autocompletar establezca el texto mostrado al nombre y el valor oculto al valor?

No veo ninguna manera de hacer esto en los documentos oficiales.

Aquí está mi autocompletado:

$("#eventAccount").autocomplete({ minLength: 2, source: function (request, response) { var term = request.term; if (term in cache) { response(cache[term]); return; } request.e = "getMyAccountAutocomplete"; $.getJSON("/admin/ajaxController.php", request, function (data, status, xhr) { cache[term] = data; response(data); }); } });

Y el JSON está volviendo:

[{"label":"My fancy name","value":"229"}]