web-dev-qa-db-fra.com

jquery saisie semi-automatique obtenir le texte de l'élément sélectionné

Je me demande comment récupérer la valeur de texte de l'élément sélectionné lors de la saisie semi-automatique jquery.

J'ai initialisé jquery comme suit:

$(document).ready(function (){
    $("input#autocomplete").autocomplete({
        source: postcodelist,
        select: function (event, ui) {
            AutoCompleteSelectHandler(event, ui)
        }
    });
});

Et j'ai créé une fonction fonction AutoCompleteSelectHandler (event, ui) {}.

À l'intérieur de cette fonction, je veux une manipulation supplémentaire pour alimenter les données dans des zones de texte correctes, mais je ne sais pas comment récupérer la valeur de texte de l'élément sélectionné.

J'ai fait quelques recherches sur Google et j'ai essayé des exemples, mais je n'arrive pas à le faire fonctionner.

Toute aide sera très appréciée.

Merci beaucoup d'avance.

18
rlee923

Le paramètre ui a une propriété item avec le texte sélectionné

function AutoCompleteSelectHandler(event, ui)
{               
    var selectedObj = ui.item;              
    alert(selectedObj.value);
}

source: http://jqueryui.com/demos/autocomplete/#event-select allez dans l'onglet "Evénements" puis événement "Select"

31
GeertvdC
// list of clients
        $( "#client" ).autocomplete({
        source: "lib/getClientList.php",
        minLength: 2,
        select: function(event, ui) {
            alert(ui.item.value);
             }
        })

;

i.item.value est la référence que jquery utilise pour attribuer une valeur à l'entrée

14
onhundper

Vous n'avez pas besoin d'appliquer une fonction anonyme comme enveloppe, vous pouvez directement passer la fonction ref.

$(document).ready(function (){
   $("input#autocomplete").autocomplete({
        source: postcodelist,
        select: AutoCompleteSelectHandler
    });
});

Dans cette méthode, vous pouvez accéder à this ou event.target pour obtenir la valeur actuelle, les deux valeurs font référence à l'élément d'entrée:

function AutoCompleteSelectHandler(event, ui) {
    alert( $(event.target).val() );
    alert( $(this).val() );

    // alert( this.value );
}
4
jAndy

Vous saisissez simplement la valeur de l'entrée de la même manière que si l'utilisateur l'avait saisie lui-même:

$('input#autocomplete').val()
1
kinakuta