【发布时间】:2013-10-17 17:07:28
【问题描述】:
有一个简单的表单,它将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;
})
我收到类似“成功获取数据”以及“项目名称”之类的警报消息。还检查了谷歌浏览器下的Network 标签 -> json 响应在那里。
问题是,我无法提交表单。如果我删除该行,$('#searchTerm').val(ui.item.name); 表单将被提交,一切都很好。
谁能指出我正确的方向?为什么这个简单的 javascript 没有运行?
【问题讨论】:
-
您的 sort2 是在哪里定义的?还是从哪里来?
-
@Jatinpatil:感谢您的指出。这是一个错字。但是,仍然是同样的错误。
-
看起来一切都很好。你能用示例 json 创建fiddle 吗?
-
你必须传递这样的标签
source: availableTags而不是source: {availableTags}。工作正常。 jsfiddle.net/sNb86/4 -
你有错字。这不是
$("searchTerm").value("test")。使用$("searchTerm").val("test").jsfiddle.net/sNb86/7
标签: c# jquery html jquery-ui asp.net-mvc-4