sweetalert确认在表单提交时不返回false

时间:2016-02-02 13:57:44

标签: javascript forms

以前曾提出类似的问题,但我没有发现回复对我的要求有用,因此这个问题。

以下是表格:

<form class="form-horizontal" role="form" method = "post" onsubmit = "return step1();" action = "index.php">
.....
<button type="submit" class="btn btn-primary btn-lg btn-block"><i class="fa fa-floppy-o"></i>  Save</button>
</form>

这是javascript函数:

function step1() {

warn = "Some text";
swal({   title: "Warning!",   text: "warn+"\nDo you still want to save this?",   type: "warning",   showCancelButton: true,   confirmButtonColor: "#5cb85c",   confirmButtonText: "Yes!",   cancelButtonText: "Cancel!",   closeOnConfirm: false,   closeOnCancel: false }, function(isConfirm){   if (isConfirm) {     swal("OK!", "Will proceed.", "success"); return true;   } else {     swal("Cancelled", "You may edit it.", "error"); return false;   } });
}

尽管在点击取消按钮时提供return false;,表单仍会提交。如何使它工作?注意:我对jquery感到不舒服。

1 个答案:

答案 0 :(得分:0)

您必须从step1()函数返回,以防止表单提交。

那里没有任何退货声明。你的return语句是一个匿名函数,它看起来像是作为参数传递的(请格式化你的代码以使其可读!)。

如果您要使用DOM操作来表示您的消息(这是我假设您的库正在执行的操作),那么在您点击之前就无法阻止UI。

您最接近的将是始终阻止提交表单,然后在获得OK点击时使用JS重新触发提交。