Domanda

Ho un widget di jQuery UI completamento automatico in una forma e mi piacerebbe preselezionare il suo valore da un database. Il mio completamento automatico funziona nel seguente modo: l'id è un numero, tha etichetta e il valore sono gli stessi e sono una concatenazione di id + "-" + descrizione. Quando si seleziona un valore dal completamento automatico, il valore di un campo nascosto è impostato il valore di id. Quindi, il valore del campo nascosto viene salvato nella db quando il modulo viene inviato. Quando l'utente torna alla pagina per la modifica, ho bisogno di ricaricare il valore dal db: ho impostato ancora una volta il valore del campo idden e poi vorrei precompilare il valore del widget completamento automatico con la concatenazione di id + "-" + descrizione preso forma db. Penso che dovrei attivare l'evento di selezione di una riga nel completamento automatico, ma non so come fare. Hai qualche idea? Grazie Ecco il codice del completamento automatico:

$('#codice_contratto').autocomplete({
    source: 'do_contratto.php',
    select: function(event, ui) {
                $('#id_contratto').val(ui.item.id);
            }
});
È stato utile?

Soluzione

Nel codice lato server che restituisce la pagina per la modifica, lo consiglio solo impostando il valore sia della casella di testo con completamento automatico, così come il campo nascosto ai loro valori corretti come restituito dal server. Questa sarebbe una soluzione sul lato server, e il codice HTML sarebbe simile a questa:

<input type="textbox" id="condice_contratto" value="1 - the description" />
<input type="hidden" id="id_contratto" value="1" />

Il JQuery completamento automatico plug-in funziona normalmente quando il valore dell'elemento è preimpostato. Non c'è davvero una nozione di 'selezionare' un elemento in esso per-sé. Si cavalca solo sulla cima di una casella di testo e imposta il suo valore con un sacco di fantasia UI.

Se avete bisogno di una soluzione client-side, basta fare qualcosa di simile:

$(document).ready(function() {
   $('#condice_contratto').val(current_id + ' - ' + current_description);
   $('#id_contratto').val(current_id);
}

Questo presuppone le variabili current_id e current_description vengono impostati sui valori corretti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top