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.
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
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 );
}