即使您单击取消,表单也始终提交

时间:2013-02-02 20:29:49

标签: jquery html forms

它转到正确的if语句,但无论哪种方式,它总是提交表单。如果声明是真的,我不希望它提交,如果他们按下取消,我也不希望它提交。

我也看到了很多类似的问题,但他们的答案都不是正确的解决方案。

我的表单html:

<form action="actual link here" method="POST" target="_blank" onsubmit="ordering()">

我的js:

function ordering() {
    if($('#total').html() == "$0.00") {
        alert("You have not ordered anything. Please use our contact page if you wish to contact us.");
        return false;
    }
    else {
        return window.confirm("Are you sure?");
    }
}

3 个答案:

答案 0 :(得分:1)

要停止提交事件,您需要指定return ordering(),如:

<form action="actual link here" method="POST" target="_blank" onsubmit="return ordering()">

答案 1 :(得分:0)

您可以将按钮更改为div并将该功能附加到它的onclick属性:

<div id='submitButton' onclick="ordering()"></div>

对您的功能进行微小改动:

function ordering() {
   if($('#total').html() == "$0.00") {
     alert("You have not ordered anything. Please use our contact page if you wish to contact us.");
    }
    else if(window.confirm("Are you sure?")) {
    $('form').submit();
    }
}

如果您不介意为div编写样式,使其看起来像一个按钮。

答案 2 :(得分:0)

由于您已经在使用jQuery,因此您不必在页面上添加内联'onsubmit = ....'javascript,只需使用:

为表单提供ID(或类),以便更容易使用jQuery选择它;

<form id='myform' action="actual link here" method="POST" target="_blank">

<script>
$(document).ready(function () {

    $('#myform').on('submit', function(e) {
        if($('#total').html() == "$0.00") {
                e.preventDefault();
            alert("You have not ordered anything. Please use our contact page if you wish to contact us.");
            return false;
        } else {
            return window.confirm("Are you sure?");
        }
    }
});
</script>