我正在尝试使用JQuery对返回JSON对象的servlet进行Ajax调用。 在JSP页面中我有一个表单,起初我不知道如何从表单中获取数据, 然后我找到了.serialize。
我有以下JavaScript:
$(document).ready(function() {
$("#submit").click(function blabla() {
var formData = $('form').serialize();
$.ajax({
type: "POST",
url: "/ArchiveSearch/Search",
dataType: "json",
data: formData,
});
});
});
信息来自以下表格:
<form method= post">
<div class="searchCiteria">
<div id="searchValueBlock1">
<div><span class="label">Case ID:</span><input type="text" name="messagecaseid" size="25"/></div>
<div><span class="label">Onderwerp:</span><input type="text" name="messagesubject" size="25" /></div>
<div><span class="label">Afzender:</span><input type="text" name="messagesender" size="25"/></div>
<div><span class="label">Ontvanger:</span><input type="text" name="messagereceiver" size="25"/></div>
</div>
<div id= "searchValueBlock2">
<div><span class="label">Datum:</span><input type="text" name="date1" size="25"/></div>
<div><span class="label"></span><input type="text" name="date2" size="25"/></div>
<div class="submit">
<input type="submit" value="Search">
</div>
</div>
</div>
</form>
当我在表单中使用action参数时,servlet会像它应该的那样响应。 但我似乎无法让Ajax调用工作。
我做错了什么?
答案 0 :(得分:1)
您必须将成功参数添加到ajax函数
$.ajax({
type: "POST",
url: "/ArchiveSearch/Search",
dataType: "json",
data: formData,
success: function(data) {
$('.result').html(data);
alert('Load was performed.');
}
});
答案 1 :(得分:1)
提交按钮的默认行为是POST
表单,该表单会将用户重定向到表单上action
属性的URL。当你没有(你应该......)有一个动作属性时,它将重新加载页面。要阻止页面重新加载,您需要在false
函数末尾返回$("#submit").click
来阻止默认行为。