我正在使用jQuery自动完成并且它工作正常,现在我想在发生以下情况时从jQuery在会话中存储变量。
当有人输入任何单词jQuery显示建议下拉列表时,如果有人从该建议下拉列表中选择一个项目。
我想捕获上面的点并在会话中存储变量。
我搜索了Google,StackOverflow但没有找到相关解决方案。我的自动填充代码如下:
$(".autosearch-smart").autocomplete('Home/GetCompanyNames', {
minChars: 1,
width: 402,
matchContains: "word",
autoFill: true
});
这就是我试图做的事情:
$(".autosearch-smart").autocomplete('Home/GetCompanyNames', {
minChars: 1,
width: 402,
matchContains: "word",
autoFill: true,
select: function (a, b) {
alert("selected");
}
});
编辑:选择事件处理程序也无法正常工作
我正在使用带有C#的asp.net MVC3。请帮助我,并提前感谢。
答案 0 :(得分:21)
因此,如果我理解正确,您希望将所选值存储在变量会话中
您可以通过以下代码获取所选项目的价值:
$(".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
}
});
值和标签是来自服务器的json对象
希望这有帮助
答案 1 :(得分:1)
好吧,如果您想使用asp.net mvc3存储会话,请执行以下操作
$(".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'
});
}
});
和控制器
[HttpPost]
public JsonResult Action1( string label ) {
this.Session["AnyValue"] = label;
return Json( new {
data = true
}, JsonRequestBehavior.AllowGet );
}