Asp.net mvc 3 访问从jquery到mvc3操作的下拉选择值
我正在尝试根据下拉选择值填充自动完成文本框, 但无法将所选下拉列表值作为参数传递给自动完成url.Action() 这是我正在使用的代码Asp.net mvc 3 访问从jquery到mvc3操作的下拉选择值,asp.net-mvc-3,autocomplete,Asp.net Mvc 3,Autocomplete,我正在尝试根据下拉选择值填充自动完成文本框, 但无法将所选下拉列表值作为参数传递给自动完成url.Action() 这是我正在使用的代码 Dictionary<string, string> searchlist = new Dictionary<string, string>(); searchlist.Add("option1", "1"); searchlist.Add("option2", "2"); searchlist.Add("option3", "3");
Dictionary<string, string> searchlist = new Dictionary<string, string>();
searchlist.Add("option1", "1");
searchlist.Add("option2", "2");
searchlist.Add("option3", "3");
searchlist.Add("option4", "4");
SelectList list = new SelectList(searchlist, "value", "key");
@Html.DropDownListFor(m => m.SearchType, list, new {@id="category", @class = "select" })
<script type="text/javascript">
$(document).ready(function () {
$("#category").change(function () {
var selectedVal = $("#category option:selected").text();
alert("You selected :" + selectedVal);
});
});
</script>
<input type="text" id="searchField" name="searchField" data-autocomplete-url="@Url.Action("Autocomplete", "Home", new { lang = Model.Language, cattype = selectedVal })" class="select" value="Search" onBlur="if(this.value == '') this.value = 'Search';" onFocus="if(this.value == 'Search') this.value = '';" />
<a href="#"><img src="@Url.Content("~/Content/images/magnifier.png")" alt="Search" title="Search" /></a>
字典搜索列表=新建字典();
搜索列表。添加(“选项1”、“1”);
搜索列表。添加(“选项2”、“2”);
搜索列表。添加(“选项3”、“3”);
搜索列表。添加(“选项4”、“4”);
选择列表=新的选择列表(搜索列表,“值”、“键”);
@DropDownListFor(m=>m.SearchType,list,new{@id=“category”,@class=“select”})
$(文档).ready(函数(){
$(“#类别”)。更改(功能(){
var selectedVal=$(“#类别选项:选定”).text();
警报(“您选择:”+selectedVal);
});
});
请帮帮我,我哪里做错了。
提前感谢。当DDL更改时,您应该触发自动完成:
$(document).ready(function () {
$("#category").change(function () {
var selectedVal = $("#category option:selected").text();
//fire autocomlete
$('*[data-autocomplete-url]').each(function () {
$(this).autocomplete(
{
source: function (request, response) {
$.ajax({
url: $(this).attr('data-action'),
dataType: "json",
data: { lang : '@Model.Language', cattype : selectedVal },
success: function (data) {
response($.map(data, function (item) {
return {
label: item.Label,
value: item.Label,
realValue: item.Value
};
}));
},
});
},
minLength: 2,
select: function (event, ui) {
//do something
},
change: function (event, ui) {
if (!ui.item) {
this.value = '';
} else {
}
}
});
});
});
});