web-dev-qa-db-fra.com

Saisie semi-automatique Jquery sur un événement sélectionné

J'utilise jQuery autocomplete et son bon fonctionnement, maintenant je veux stocker une variable dans la session de jQuery lorsque la condition suivante se produit.

Lorsque quelqu'un tape un Word jQuery affiche une liste déroulante de suggestions, si quelqu'un sélectionne un élément dans cette liste déroulante de suggestions.

Je veux capturer le point ci-dessus et stocker une variable en session.

J'ai recherché Google, StackOverflow mais n'ai trouvé aucune solution pertinente. Mon code pour la saisie semi-automatique est le suivant:

  $(".autosearch-smart").autocomplete('Home/GetCompanyNames', {
    minChars: 1,
    width: 402,
    matchContains: "Word",
    autoFill: true
});

et c'est ce que j'ai essayé de faire:

  $(".autosearch-smart").autocomplete('Home/GetCompanyNames', {
    minChars: 1,
    width: 402,
    matchContains: "Word",
    autoFill: true,
    select: function (a, b) {
        alert("selected");
    }

});

EDIT: le gestionnaire d'événements Select ne fonctionne pas non plus

J'utilise asp.net MVC3 avec C #. Veuillez m'aider et merci d'avance.

15
smart boy

Donc, si je comprends bien, vous souhaitez stocker la valeur sélectionnée dans une session variable

vous pouvez obtenir la valeur de l'élément sélectionné via le code suivant:

  $(".autosearch-smart").autocomplete('Home/GetCompanyNames', {
minChars: 1,
width: 402,
matchContains: "Word",
autoFill: true,
select: function (event, ui) {
    var label = ui.item.label;
    var value = ui.item.value;
   //store in session
  document.valueSelectedForAutocomplete = value 
}
});

la valeur et l'étiquette sont des objets json provenant du serveur

J'espère que cela t'aides

21
iBoonZ

Eh bien, si vous souhaitez stocker en session en utilisant asp.net mvc3, procédez comme suit

$(".autosearch-smart").autocomplete('Home/GetCompanyNames', {
    minChars: 1,
    width: 402,
    matchContains: "Word",
    autoFill: true,
    select: function (event, ui) {   //must be cleared with function parameter
        //alert(ui.item.label);  //will show you the selected item

       $.ajax({
          type: 'POST',
          url: '/Controller/Action1',  //whatever any url
          data: {label: ui.item.label},
          success: function(message) { if(message.data == true) ... else ... },
          dataType: 'json'
       });

    }

});

et contrôleur

[HttpPost]
  public JsonResult Action1( string label ) {

     this.Session["AnyValue"] = label;

     return Json( new {
        data = true
     }, JsonRequestBehavior.AllowGet );
  }
1
Snake Eyes