昨天一切顺利,但今天我确实做了愚蠢的事情并且提交了jquery回调崩溃。
首先,jQuery在classpath和其他回调上工作。但我无法使用jQuery在submit事件上注册回调。我的回调:
var $form = $('#hostelSearchForm');
$form.on('submit', function(e) {
//console.log($('#hostelSearchFormButton').attr('id'));
hostelSearchJson = collectHostelSearchFormData($form);
console.log(JSON.stringify(hostelSearchJson));
//do ajax search
hostelSearch(hostelSearchJson);
//serializing is bad because of checkboxes value as on and off
// console.log(JSON.stringify($form.serialize()));
e.preventDefault();
return false;
});
此表格与相应的输入类型提交:
<form:form id="hostelSearchForm" modelAttribute="hs" method="POST"
cssClass="mainForm">
.........................
<div>
<fmt:message key="searchButtonLabel" var="searchButtonLabel" />
<input id="hostelSearchFormButton" type="submit" class="btn btn-primary"
style="font: bold 18px Tahoma, serif; padding: 15px"
value="${searchButtonLabel}" />
<button type="reset" class="btn">
<fmt:message key="cancel" />
</button>
</div>
</form:form>
当我点击hostelSearchFormButton
时,它会将我重定向到新页面并提供
415 Unsupported Media Type.
在Chrome中,我看到它以text/html
作为媒体类型发布请求。
即使我在hostelSearchFormButton
附加回调,也不会被解雇。但是本页上的所有其他回调都运行良好。
这是如此愚蠢的错误,我无法理解错误是什么?
答案 0 :(得分:-1)
非常好的问题,
这种情况'在javascritp之后首先使用HTML提交的cos提交,所以当你点击它时,默认html发送表单数据,为了避免这种影响,请在你的表单标签中添加onsubmit =“return false”,如下所示:
<form action="my.php" onsubmit="return false">
当你完成你想在jquery中做的事情时,你可以用
发送数据$('form').submit();
au revoir