我有一些代码在提交表单时发送ajax请求。这是第一次提交表单(这是一个搜索模块),但只有一次。当数据返回时,我添加了一个突出显示表的效果,并且只能看到一次(数据只更改一次)。来自AJAX请求的响应仅显示一次
当我查看chrome开发工具中的响应时,可以看到它包含新搜索查询的数据,但未显示。为什么我只能显示一次结果?
JS:
$(function() {
// Creates an ajax request upon search form submit
var ajaxFormSubmit = function() {
var $form = $(this);
var options = {
url: $form.attr("action"),
type: $form.attr("method"),
data: $form.serialize()
};
$.ajax(options).done(function (data) {
var $target = $($form.attr("data-nn-target"));
var $newHtml = $(data);
$target.replaceWith($newHtml);
$newHtml.effect("highlight");
});
// Prevent default action
return false;
};
$("form[data-nn-ajax='true']").submit(ajaxFormSubmit);
});
HTML:
<form method="GET" action="@Url.Action("Index", "Show")" data-nn-ajax="true" data-nn-target="#contentlist" class="form-search">
<div class="input-append mysearch">
<input type="search" class="span5 search-query" name="query" data-nn-autocomplete="@Url.Action("AutoComplete")" />
<input type="submit" class="btn" value="Search" />
</div>
</form>
<div id="contentlist">
@Html.Partial("_Shows", Model)
</div>
这是无效的:'action =“@ Url.Action(”Index“,”Show“)”'。转义你的引号或混合它们:'action ='@ Url.Action(“Index”,“Show”)''或'action =“@ Url.Action('Index','Show')”'。 –
你正在销毁旧的'contentList'并用新的HTML代替一个全新的节点,所以你确定新的HTML包含''contentList“'ID? –
与 \t \t \t \t'$尝试( '输入[类型=提交]')上( '点击',函数(){ \t \t \t \t \t ajaxFormSubmit(); \t \t \t \t})。' – softsdev