我正在尝试在搜索文本框中获取TypeAhead功能。如果选择了其中一个,我在表单上有2个单选按钮我需要提前输入功能,以便在搜索框中添加主设备。
//html
<li> @Html.TextBox("SearchTitle") </li>
//JavaScript
if ($('input[name=SearchType]:checked').val() == "m") {
var availableMasters = ["ActionScript",
"AppleScript",
"Asp"];
$.ajax({
cache: false,
type: "GET",
url: "@(Url.Action("Get", "Masters"))",
success: function (data) {
availableMasters = data.list;
},
error: function () {
alert('No Master Available.');
}
});
$("#SearchTitle").autocomplete({
source: availableMasters
});
}
我的问题是表单在ajax调用之前绑定了availableMaster,因此搜索文本框始终具有我在开头添加3个字段时添加的静态文本数组。我在(data.list)中获得了正确的主列表,但它从未显示在文本框中。
一旦ajax调用获得主人列表,有没有办法绑定列表? 感谢您的关注......
答案 0 :(得分:1)
将它包装在一个函数中,比如init,并在你的ajax调用成功时调用该函数。
function initSearch(){
$("#SearchTitle").autocomplete({
source: availableMasters
});
}
if ($('input[name=SearchType]:checked').val() == "m") {
var availableMasters = ["ActionScript",
"AppleScript",
"Asp"];
$.ajax({
cache: false,
type: "GET",
url: "@(Url.Action("Get", "Masters"))",
success: function (data) {
availableMasters = data.list;
initSearch();
},
error: function () {
alert('No Master Available.');
}
});
}