为什么在点击输入类型提交时从不调用on('submit')函数?

时间:2014-07-30 15:22:55

标签: javascript jquery html

昨天一切顺利,但今天我确实做了愚蠢的事情并且提交了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}" />
                            &nbsp;&nbsp;&nbsp;&nbsp;
                        <button type="reset" class="btn">
                            <fmt:message key="cancel" />
                        </button>
                </div>
</form:form>

当我点击hostelSearchFormButton时,它会将我重定向到新页面并提供

415 Unsupported Media Type. 

在Chrome中,我看到它以text/html作为媒体类型发布请求。

即使我在hostelSearchFormButton附加回调,也不会被解雇。但是本页上的所有其他回调都运行良好。

这是如此愚蠢的错误,我无法理解错误是什么?

1 个答案:

答案 0 :(得分:-1)

非常好的问题,

这种情况'在javascritp之后首先使用HTML提交的cos提交,所以当你点击它时,默认html发送表单数据,为了避免这种影响,请在你的表单标签中添加onsubmit =“return false”,如下所示:

<form action="my.php" onsubmit="return false">

当你完成你想在jquery中做的事情时,你可以用

发送数据
$('form').submit();

au revoir