2010-06-16 3 views
2

en utilisant autocomplete jquery, nous obtenons la valeur cachée en appelant Cela n'est .result fonction comme celui-cijquery autocomplete sur le bouton cliquez sur Obtenir la valeur cachée

$("#suggest").result(function(event, data, formatted) { 
    $('#hidden').val(data[1]); 
}); 

utile lorsque nous avons sélectionné l'option de la liste autosuggest et appuyez sur Entrée. Ce dont j'ai besoin, c'est que j'entre dans l'option en tapant le mot complet sans le sélectionner et en cliquant sur le bouton Ok? mais je me vide toujours.

<input type="text" id="suggest" /> 
<input type="button" value="Ok" onclick="GetValue()" /> 
<input type="hidden" id="hidden"/> 
function GetValue() 
{ 
    //get hidden field value - getting empty 
    var hid=document.getElementById('hidden').value; 
} 
+0

avez-vous essayé 'alert (hid);'? – Reigel

Répondre

1

Edit: Sur la base que vous devez faire vos commentaires quelque chose comme ceci:

var users = [ {value: "John", id: 1}, {value: "George", id: 2}, 
       {value: "Jim", id: 3} ]; 

var usersArray = $.map(users, function(el) { return el.value; }); 


$(function(){ 

    $("#suggest").autocomplete(usersArray); 

    // This handles an autocomplete selection 
    $("#suggest").result(function(event, data, formatted) { 
    UpdateValue(); 
    }); 

    // This handles the manual entry case 
    $("#suggest").keyup(function() { 
    UpdateValue(); 
    }); 

}); 

function UpdateValue() 
{ 
    var name=$("#suggest").val(); 
    $("#DebugField").text(name); 
    $.each(users, function(n, item) { 
     if (item.value == name) { 
      $('#hidden').val(item.id); 
      $("#DebugField").text(item.id); 
     } 
    }); 
} 


function GetValue() 
{ 
    //get hidden field value - getting empty 
    var hid=$('#hidden').val(); 
    alert(hid); 
    return false; 
} 

Voir fonctionner here.

+0

merci mais cela donnera la valeur textbox, bcos dans la liste autosuggest im affichant le nom d'utilisateur et dans le backend im obtenir son userid pour être stocké dans le champ caché.i besoin userid onclick du bouton – gabriel

+0

Le code ci-dessus mettra à jour la valeur du champ caché, chaque fois la valeur de la boîte de saisie semi-automatique change, que ce soit en tapant ou en sélectionnant une saisie semi-automatique. La fonction GetValue ne doit pas changer. Voir en cours d'exécution dans http://jsbin.com/oxopa3 – kgiannakakis

+0

oui il va mettre à jour la valeur du champ caché. mais ce que je veux dire est que im affichant autosuggest liste des "utilisateurs", et en backend chaque utilisateur a son userid, donc dans le champ caché j'ai besoin "userid" et non "username" – gabriel

0

algorithme:

onSelect:

pré-requis: Assurez-vous de retourner l'étiquette et la valeur {nom de la personne et id personne} pour le succès
obtenir l'élément (clé, valeur)
magasin la valeur dans une variable. {a = item.value}

modifiez maintenant la valeur de l'élément en libellé d'élément. {item.label = item.value} en utilisant la valeur définie sur une variable masquée sous la forme comme document.personform.hiddenfield = a.
Ensuite, soumettez le formulaire ou envoyez-le par ajax.

Questions connexes