如何使用 Unobtrusive Ajax 实现 data-ajax-confirm with sweetalert?
How to implement data-ajax-confirm with sweetalert using Unobtrusive Ajax?
给出这样的形式ajax
<form method="post"
data-ajax="true"
data-ajax-method="post"
data-ajax-complete="completed"
data-ajax-confirm="Are you sure you want to do this?">
<input type="text" name="name" /><input type="submit"/>
</form>
我已经设置了 data-ajax-confirm
,但是知道如何使用 sweetalert 实现吗?
例子
<script>
swal({
title: "Are you sure?",
text: "Once deleted, you will not be able to recover this imaginary file!",
icon: "warning",
buttons: true,
dangerMode: true,
})
.then((willDelete) => {
if (willDelete) {
//Submit ajax here
} else {
swal("Your imaginary file is safe!");
}
});
completed = function (xhr) {
if (xhr.status == "200") {
swal("Success", xhr.responseText, "success")
.then(() => {
location.reload();
});
}
else {
swal("Error", xhr.responseText, "error")
}
};
</script>
如何在提交前用 sweetalert 显示对话框
你可以像下面那样做:
<form method="post"
id="myform"
data-ajax="true"
data-ajax-method="post"
data-ajax-complete="completed">
<input type="text" name="name" />
</form>
<input id="submit" type="button" value="submit" />
脚本:
@section scripts{
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js"></script>
<script src="~/lib/jquery-ajax-unobtrusive/jquery.unobtrusive-ajax.js"></script>
<script>
$("#submit").click(function () {
swal({
title: "Are you sure?",
text: "Once deleted, you will not be able to recover this imaginary file!",
icon: "warning",
buttons: true,
dangerMode: true,
})
.then((willDelete) => {
if (willDelete) {
$("#myform").submit();
} else {
swal("Your imaginary file is safe!");
}
});
completed = function (xhr) {
if (xhr.status == "200") {
swal("Success", xhr.responseText, "success")
.then(() => {
location.reload();
});
}
else {
swal("Error", xhr.responseText, "error")
}
};
})
</script>
}
控制器:
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Index(string name)
{
if(name != null)
{
return Ok();
}
return NotFound();
}
结果:
给出这样的形式ajax
<form method="post"
data-ajax="true"
data-ajax-method="post"
data-ajax-complete="completed"
data-ajax-confirm="Are you sure you want to do this?">
<input type="text" name="name" /><input type="submit"/>
</form>
我已经设置了 data-ajax-confirm
,但是知道如何使用 sweetalert 实现吗?
例子
<script>
swal({
title: "Are you sure?",
text: "Once deleted, you will not be able to recover this imaginary file!",
icon: "warning",
buttons: true,
dangerMode: true,
})
.then((willDelete) => {
if (willDelete) {
//Submit ajax here
} else {
swal("Your imaginary file is safe!");
}
});
completed = function (xhr) {
if (xhr.status == "200") {
swal("Success", xhr.responseText, "success")
.then(() => {
location.reload();
});
}
else {
swal("Error", xhr.responseText, "error")
}
};
</script>
如何在提交前用 sweetalert 显示对话框
你可以像下面那样做:
<form method="post"
id="myform"
data-ajax="true"
data-ajax-method="post"
data-ajax-complete="completed">
<input type="text" name="name" />
</form>
<input id="submit" type="button" value="submit" />
脚本:
@section scripts{
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js"></script>
<script src="~/lib/jquery-ajax-unobtrusive/jquery.unobtrusive-ajax.js"></script>
<script>
$("#submit").click(function () {
swal({
title: "Are you sure?",
text: "Once deleted, you will not be able to recover this imaginary file!",
icon: "warning",
buttons: true,
dangerMode: true,
})
.then((willDelete) => {
if (willDelete) {
$("#myform").submit();
} else {
swal("Your imaginary file is safe!");
}
});
completed = function (xhr) {
if (xhr.status == "200") {
swal("Success", xhr.responseText, "success")
.then(() => {
location.reload();
});
}
else {
swal("Error", xhr.responseText, "error")
}
};
})
</script>
}
控制器:
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Index(string name)
{
if(name != null)
{
return Ok();
}
return NotFound();
}
结果: