无法使用jQuery提交POST表单?

时间:2016-04-25 19:32:34

标签: jquery forms post

我有以下表格:

<form id="form1" class="form1" action="https://www.someexternalsite.com/api/some/route?encoding=UTF-8" method="POST">
    <input type=hidden id="pid" name="pid" value="00NJAHSJASASAS">
    <label for="symbol">Symbol</label><input id="symbol" name="00NALKSJSKA" maxlength="10" size="20" type="text" />
    <input type="button" name="submitThis" id="qwSubmit" class="submitForm1Button" value="Submit">
</form>

我的js挂钩onclick事件处理:

$(function () {
    $("#qwSubmit").click(function (e) {
        e.preventDefault();

        try {
            validateForm(); // this includes some ajax requests for some parts of the validation
        } catch (e) {
            showValidationError(e);
            return;
        }

        $("#form1").submit();
    });

    $("#form1").keypress(function (event) {
        if (window.event) event = window.event;
        if (event.keyCode == 13) {
            event.preventDefault ? event.preventDefault() : event.returnValue = false;
            $("#qwSubmit").click();
        }
    });
});

我错过或做错了什么阻止了提交?

编辑:

没有js错误。当我点击提交时,它只是有点坐在那里;我确实看到它解雇了ajax来验证某些字段。

编辑:

我也尝试过:

button.submit(function(er) {e.prevent... return true});

1 个答案:

答案 0 :(得分:0)

它可能永远不会返回到内联函数。

我建议更改流程,以便验证功能在成功时提交表单。

$(function () {
    function validateForm() {
        // validation logic

        // Submit form
        $("#form1").submit();
    }

    $("#qwSubmit").click(function (e) {
        e.preventDefault();

        try {
            validateForm(); // this includes some ajax requests for some parts of the validation
        } catch (e) {
            showValidationError(e);
            return;
        }
    });

    $("#form1").keypress(function (event) {
        if (window.event) event = window.event;
        if (event.keyCode == 13) {
            event.preventDefault ? event.preventDefault() : event.returnValue = false;
            $("#qwSubmit").click();
        }
    });
});