有一个简单的表单,它将 get-request
发送到服务器。
<form id="form0" method="get">
<input id="searchTerm" type="hidden" name="searchTerm">
<input type="search" id="userSearchTerm" />
<input type="submit" value="submit" />
</form>
我使用 jquery-ui auto-complete
从服务器获取 json 数据,是的,它工作正常。
<script type="text/javascript">
$(document).ready(function () {
$("#userSearchTerm").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Home/AutoComplete",
type: "POST",
dataType: "json",
data: { term: request.term },
success: function (data) {
alert("successfully got the data");
response($.map(data, function (item) {
return { name: item.name, value: item.age };
}))
}
})
},
select: function (e, ui) {
alert(ui.item.name);
$('#searchTerm').val(ui.item.name);
$("#form0").submit();
}
});
return false;
})
我收到诸如“成功获取数据”以及“项目名称”之类的警报消息。还使用 Google Chrome 下的 Network
选项卡进行检查 -> json 响应就在那里。
问题是,我无法提交表单。如果我删除该行, $('#searchTerm').val(ui.item.name);
表单将被提交,一切都很好。
有人能给我指出正确的方向吗?为什么这个简单的 javascript 没有运行?
最佳答案
尝试将 ui.item.name 替换为 ui.item.value,例如
select: function (e, ui) {
alert(ui.item.value);
$('#searchTerm').val(ui.item.value);
$("#form0").submit();
}
<强> Fiddle
关于c# - 使用 jquery 将值设置为隐藏字段在自动完成期间不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19287302/