Sweetalert - 验证无效 + 表单未提交
Sweetalert - validation isn't working + form is not submitting
我正在尝试实施 sweetalert2 但由于某些原因它不应用常规 html 验证(即 required='true' 不起作用),
我没有收到字段为空的错误消息。
没有swall2,确实会提示我字段为空的错误。
此外,一旦我在 swall 对话框中确认我要继续 ("Yes, submit it!"),它不会提交表单。
我错过了什么?
HTML:
<form>
<label>Last Name</label>
<input type="text" required="true"/>
<input class="btnn" type="submit" name="submit" id="btn-submit"/>
</form>
Javascript:
$('#btn-submit').on('click', function(e) {
e.preventDefault();
var form = $('form');
swal.fire({
title: "Are you sure?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, submit it!",
closeOnConfirm: false
}, function(isConfirm) {
if (isConfirm) form.submit();
});
});
文档说在它迁移到 sweetalert2 之后结构已经从回调方法改变
swal(
{title: 'Are you sure?', showCancelButton: true}, function(isConfirm) {
if (isConfirm) {
// handle confirm
} else {
// handle all other cases
}
}
)
基于承诺的方法
Swal.fire({title: 'Are you sure?', showCancelButton: true}).then(result => {
if (result.value) {
// handle Confirm button click
// result.value will contain `true` or the input value
} else {
// handle dismissals
// result.dismiss can be 'cancel', 'overlay', 'esc' or 'timer'
}
})
你可以这样做。
$('#btn-submit').on('click',function(e){
e.preventDefault();
var form = $('form');
console.log("hello");
swal.fire({
title: "Are you sure?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, submit it!",
}).then(function (result){
if(result.value === true){
console.log("Submitted");
form.submit();
}
});
});
有关更多信息,您可以查看 https://sweetalert2.github.io/#examples
中有关 SweetAlert2 的示例
您可以在提交表单时调用 swal,目前在单击提交按钮时会在表单提交之前调用 swal 确认框。
JSFiddle Link : sweetalert
试试下面的代码:
$('#form1').on('submit',function(e){
e.preventDefault();
var form = $('form');
swal.fire({
title: "Are you sure?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, submit it!",
closeOnConfirm: false
}, function(isConfirm){
if (isConfirm) form.submit();
});
});
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form name="form1" id="form1" method="post">
<label for="">Last Name</label><span class="required"> *</span>
<input type="text" required />
<input class="btnn" type="submit" name="submit" id="btn-submit"/>
</form>
</body>
</html>
我正在尝试实施 sweetalert2 但由于某些原因它不应用常规 html 验证(即 required='true' 不起作用), 我没有收到字段为空的错误消息。
没有swall2,确实会提示我字段为空的错误。
此外,一旦我在 swall 对话框中确认我要继续 ("Yes, submit it!"),它不会提交表单。
我错过了什么?
HTML:
<form>
<label>Last Name</label>
<input type="text" required="true"/>
<input class="btnn" type="submit" name="submit" id="btn-submit"/>
</form>
Javascript:
$('#btn-submit').on('click', function(e) {
e.preventDefault();
var form = $('form');
swal.fire({
title: "Are you sure?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, submit it!",
closeOnConfirm: false
}, function(isConfirm) {
if (isConfirm) form.submit();
});
});
文档说在它迁移到 sweetalert2 之后结构已经从回调方法改变
swal(
{title: 'Are you sure?', showCancelButton: true}, function(isConfirm) {
if (isConfirm) {
// handle confirm
} else {
// handle all other cases
}
}
)
基于承诺的方法
Swal.fire({title: 'Are you sure?', showCancelButton: true}).then(result => {
if (result.value) {
// handle Confirm button click
// result.value will contain `true` or the input value
} else {
// handle dismissals
// result.dismiss can be 'cancel', 'overlay', 'esc' or 'timer'
}
})
你可以这样做。
$('#btn-submit').on('click',function(e){
e.preventDefault();
var form = $('form');
console.log("hello");
swal.fire({
title: "Are you sure?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, submit it!",
}).then(function (result){
if(result.value === true){
console.log("Submitted");
form.submit();
}
});
});
有关更多信息,您可以查看 https://sweetalert2.github.io/#examples
中有关 SweetAlert2 的示例您可以在提交表单时调用 swal,目前在单击提交按钮时会在表单提交之前调用 swal 确认框。 JSFiddle Link : sweetalert 试试下面的代码:
$('#form1').on('submit',function(e){
e.preventDefault();
var form = $('form');
swal.fire({
title: "Are you sure?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, submit it!",
closeOnConfirm: false
}, function(isConfirm){
if (isConfirm) form.submit();
});
});
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form name="form1" id="form1" method="post">
<label for="">Last Name</label><span class="required"> *</span>
<input type="text" required />
<input class="btnn" type="submit" name="submit" id="btn-submit"/>
</form>
</body>
</html>