Javascript 尽管有警告消息,表单仍被提交

Javascript 尽管有警告消息,表单仍被提交,javascript,jquery,forms,form-submit,Javascript,Jquery,Forms,Form Submit,我有一个表单(一个文本字段和提交按钮)。用户输入将是一个3位数字,如果该数字大于200将显示警告。如果用户点击OK则必须提交表单,但如果点击CANCEL则不会发生任何事情,用户将能够再次输入一些值 事实上,我的表格在任何情况下都会被提交(我几乎没有注意到警告警报)。代码如下: <form name="pontoi" action="update.php" method="post"> <div class="col-sm-4"><br>

我有一个表单(一个文本字段和提交按钮)。用户输入将是一个3位数字,如果该数字大于
200
将显示警告。如果用户点击
OK
则必须提交表单,但如果点击
CANCEL
则不会发生任何事情,用户将能够再次输入一些值

事实上,我的表格在任何情况下都会被提交(我几乎没有注意到警告警报)。代码如下:

<form name="pontoi" action="update.php" method="post">
    <div class="col-sm-4"><br>
        <div class="input-group">
            <input type="text" class="form-control" autofocus="autofocus" onkeyup="checkInput(this)" maxlength="3" id="points" name="points"> 
            <span class="input-group-btn"> 
                <button type="submit" id="prosthiki" onclick="checkInp(this)" class="btn btn-primary">ΠΡΟΣΘΗΚΗ</button> 
            </span>
        </div>
    </div>
</div>
</form>
如果你对提交的表格有任何想法,这将对我有很大帮助

也有这个脚本(我认为它更好用),但它不工作太

$('.btn btn-primary').on('click',function checkInp(e){
e.preventDefault();
var form = $(this).parents('pontoi');

swal({
    title: "Number is over 200",
    text: "Are you sure?",
    type: "warning",
    showCancelButton: true,
    confirmButtonColor: "#DD6B55",
    confirmButtonText: "OK",
    closeOnConfirm: false
}, function checkInp(isConfirm){
    if (isConfirm) form.submit();
});
}

}))

您还必须收听表单的onsubmit事件

停止按钮的事件传播无效

您可以直接钩住submit事件,而不是单击按钮

document.querySelector("form").addEventListener("submit", function(ev){

  var points = $("#points").val();

  if(points > 200) {
    // prevent form submission
    // will be submitted if the user clicks ok
    ev.preventDefault();

    sweetAlert({
      title: "Number is over 200",
      text: "Are you sure?",
      type: "warning",
      showCancelButton: true,
      confirmButtonColor: "#DD6B55",
      confirmButtonText: "OK",
      closeOnConfirm: false
    }, function checkInp(){
      //ev.target is the form submitted
      ev.target.submit();
    });
  }
})

我想这就是我需要的。但是如果你能给我一个上面的例子,那就太好了。我不知道jQuery或Javascript。谢谢@platanas20更新了我的答案,包括您的样本代码谢谢!但是现在没有警报窗口,它会传递我在文本字段上输入的任何值button@platanas20你能在codepen.io/pen上复制你的代码吗?@platanas20删除了一些内联javascript事件监听功能,这些功能现在是绝对删除的。只需确保包含正确的sweetAlert插件