以前曾提出类似的问题,但我没有发现回复对我的要求有用,因此这个问题。
以下是表格:
<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感到不舒服。
答案 0 :(得分:0)
您必须从step1()
函数返回,以防止表单提交。
那里没有任何退货声明。你的return语句是一个匿名函数,它看起来像是作为参数传递的(请格式化你的代码以使其可读!)。
如果您要使用DOM操作来表示您的消息(这是我假设您的库正在执行的操作),那么在您点击之前就无法阻止UI。
您最接近的将是始终阻止提交表单,然后在获得OK点击时使用JS重新触发提交。