我有以下要求: -
1.具有data_autocomplete_source的文本框,如下所示: -
@ Html.TextBoxFor(model => model.Technology.Search,new { data_autocomplete_source = Url.Action("自动完成"," Switch")})
2.两个单选按钮,用于选择执行自动填充搜索的关键字,按名称或编号如下: -
<input type="radio" name="searchType" value="number" /> number
<input type="radio" name="searchType" value="name"/>name
所以我的问题是如何通过单选按钮选择以及自动完成搜索词?
我的自动完成脚本如下所示: -
$("input[data-autocomplete-source]").each(function () {
var target = $(this);
target.autocomplete({ source: target.attr("data-autocomplete-source"), minLength: 2, delay: 2000 });
});
修改 我尝试了以下方法: -
@Html.TextBoxFor(model => model.Technology.Search, new { data_autocomplete_source = Url.Action("AutoComplete", "Switch", new { SearchBy = Model.SearchBy}) })
@Html.RadioButtonFor(a=>a.SearchBy, "number", new { id = "number" })number
@Html.RadioButtonFor(a=>a.SearchBy, "Name", new { id = "name" })Name
但是SearchBy值总是为空?
由于
答案 0 :(得分:1)
您需要传递一个不是来自模型的值,因为它是null
的原因。我建议你在JQuery函数中传递参数。
然后它可以使用客户端的参数调用您的Action。
$("#myTextBoxSearch").each(function () {
var searchByVal = $('input[name=SearchBy]:checked').val();
var target = $(this);
target.autocomplete({ source:@Url.Action("AutoComplete", "Switch", new { SearchBy = searchByVal}) , minLength: 2, delay: 2000 });
});
如果您有观点:
@Html.TextBoxFor(model => model.Technology.Search, new { id="myTextBoxSearch" })
@Html.RadioButtonFor(a=>a.SearchBy, "number", new { id = "number" })number
@Html.RadioButtonFor(a=>a.SearchBy, "Name", new { id = "name" })Name
请注意,您可以使用所需变量的名称。我只是告诉你一个方法。 我希望它会对你有所帮助。