Jquery:提交表单而不刷新

时间:2017-01-13 23:30:05

标签: javascript jquery ajax web-services

我试图像这样提交表单:

<form id="myForm" action="http://example.com/somefile" method="POST">
...
...
...
<input type="submit" id="sendForm" value="send">
</form>

该操作链接其由另一个开发人员开发的web服务,因此,当我提交表单时,webservice回复我一个URL(http://www.example.com/thanks),我想做的是避免这个webservice回复,并在地方,更改重定向的网址,这可能吗?

我也尝试过这样做:

<script>
    $("#sendForm").click(function () {
       if (form_check_validation()) {
           $("#myForm").submit();
           window.location.replace("http://stackoverflow.com");             
       } else {
           return false;
    //                        event.preventDefault();
       }

    });
</script>

但它不起作用。

由于

注意:Web服务位于另一台服务器中,因此我遇到跨域来源问题。

3 个答案:

答案 0 :(得分:0)

https://api.jquery.com/event.preventdefault/谷歌是你的朋友,芽...........

答案 1 :(得分:0)

假设此服务允许跨源而您不希望/需要移动到其他页面,为什么不使用ajax? 您可以使用 <form :method="method" :action="url" class="dropzone" :id="id"> </form> <div class="row"> <div id="previews" class="col-sm-12"> </div> </div>创建和调用ajax。

请参阅http://api.jquery.com/jquery.ajax/

示例:

$.ajax

答案 2 :(得分:0)

你可以用Ajax做到这一点。我还建议您将submit事件侦听器绑定到表单,以便在按Enter键时提交也能正常工作。

$("#myForm").submit(function (event) {
    if (form_check_validation()) {
        form_submit(this);
    } else {
        // ...
    }
    event.preventDefault();
});

function form_submit (form) {
    $.ajax({
        url: form.action,
        type: form.method,
        data: $(form).serialize()
    });
}