如何使用 Sweet Alert 获取文本输入
how do I get a text input using Sweet Alert
因此,我使用带有 content: "input",
的 Sweet Alert 来输入消息,例如“hello world”,但结果值始终是 [object Promise]
。我看过其他类似的问题,但对于我 javascript 有限的知识来说,它们太复杂了。我还查看了 Sweet Alert API 文档,但这些文档也没有定论。
如果有人在警告框中输入“test”,我希望它将“test”保存到 message
变量。
swal({
title: "Please enter a personalized greeting:",
content: "input",
})
.then((input) => {
let message = (input);
});
if (message != "" && message != null) {
setCookie("greeting", message);
swal("your personalized message is:", message, "success");
您在 message
被设置到 Promise 链中之前使用它 - 然而,let message = (input);
创建了一个 message
,它仅在 .then
中可用 -所以你声称的message
变量是在你发布的代码之外“向上”创建的,甚至没有被你发布的代码触及
不确定为什么它是 Promise,因为您从未在您显示的代码中将可用于第二个 swal
调用的 message
设置为 Promise
像这样写你的代码,它会工作
swal({
title: "Please enter a personalized greeting:",
content: "input",
})
.then(message => {
if (message != "" && message != null) {
console.log("greeting", message);
swal("your personalized message is:", message, "success");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js" integrity="sha512-AA1Bzp5Q0K1KanKKmvN/4d3IRKVlv9PYgwFPvm32nPO6QS8yH1HO7LbgB1pgiOxPtfeg5zEn2ba64MUcqJx6CA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
根据最近的评论 - 这就是您使用以前的承诺的方式
let message;
const somePromise = swal({
title: "Please enter a personalized greeting:",
content: "input",
})
.then(input => message = input);
somePromise.then(() => {
if (message != "" && message != null) {
console.log("greeting", message);
swal("your personalized message is:", message, "success");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js" integrity="sha512-AA1Bzp5Q0K1KanKKmvN/4d3IRKVlv9PYgwFPvm32nPO6QS8yH1HO7LbgB1pgiOxPtfeg5zEn2ba64MUcqJx6CA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
因此,我使用带有 content: "input",
的 Sweet Alert 来输入消息,例如“hello world”,但结果值始终是 [object Promise]
。我看过其他类似的问题,但对于我 javascript 有限的知识来说,它们太复杂了。我还查看了 Sweet Alert API 文档,但这些文档也没有定论。
如果有人在警告框中输入“test”,我希望它将“test”保存到 message
变量。
swal({
title: "Please enter a personalized greeting:",
content: "input",
})
.then((input) => {
let message = (input);
});
if (message != "" && message != null) {
setCookie("greeting", message);
swal("your personalized message is:", message, "success");
您在 message
被设置到 Promise 链中之前使用它 - 然而,let message = (input);
创建了一个 message
,它仅在 .then
中可用 -所以你声称的message
变量是在你发布的代码之外“向上”创建的,甚至没有被你发布的代码触及
不确定为什么它是 Promise,因为您从未在您显示的代码中将可用于第二个 swal
调用的 message
设置为 Promise
像这样写你的代码,它会工作
swal({
title: "Please enter a personalized greeting:",
content: "input",
})
.then(message => {
if (message != "" && message != null) {
console.log("greeting", message);
swal("your personalized message is:", message, "success");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js" integrity="sha512-AA1Bzp5Q0K1KanKKmvN/4d3IRKVlv9PYgwFPvm32nPO6QS8yH1HO7LbgB1pgiOxPtfeg5zEn2ba64MUcqJx6CA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
根据最近的评论 - 这就是您使用以前的承诺的方式
let message;
const somePromise = swal({
title: "Please enter a personalized greeting:",
content: "input",
})
.then(input => message = input);
somePromise.then(() => {
if (message != "" && message != null) {
console.log("greeting", message);
swal("your personalized message is:", message, "success");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js" integrity="sha512-AA1Bzp5Q0K1KanKKmvN/4d3IRKVlv9PYgwFPvm32nPO6QS8yH1HO7LbgB1pgiOxPtfeg5zEn2ba64MUcqJx6CA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>