Javascript 尽管有警告消息,表单仍被提交
我有一个表单(一个文本字段和提交按钮)。用户输入将是一个3位数字,如果该数字大于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>
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插件