我目前在我的 MVC项目中使用SweetAlert,并且工作正常。但是,我需要向其中添加一些单选按钮。此功能似乎是SweetAlert Version 2的一部分。
现在,如果我执行以下不用等待字词:
function SampleCode() {
var formValues = await swal.fire({
title: 'Multiple inputs',
html:
'<input id="swal-input1">' +
'<input type="checkbox" id="swal-input2" class="swal2-input">',
focusConfirm: false,
preConfirm: () => {
return [
document.getElementById('swal-input1').value,
document.getElementById('swal-input2').value
];
}
});
//Swal.fire(JSON.stringify(formValues));
}
然后将弹出对话框。但是,如果我取消对第二个SweetAlert的注释,那么它当然将无法工作,因为我需要利用Promise。如何在MVC项目的.cshtml文件中的上述函数中执行此操作?感谢您的帮助。
答案 0 :(得分:1)
从documentation(说明“不支持多个输入,您可以使用html和preConfirm参数...实现”的部分)中,这是一个CodePen,它显示的内容与我认为的更接近可能正在尝试做。好像您忘记了将外部函数声明为异步的,这可能是导致错误的原因:https://codepen.io/anon/pen/gyNYep?&editable=true
作为参考,JavaScript需要看起来像这样:
(async function getFormValues () {
const {value: formValues} = await Swal.fire({
title: 'Multiple inputs',
html:
'<input id="swal-input1" class="swal2-input">' +
'<input id="swal-input2" class="swal2-input">',
focusConfirm: false,
preConfirm: () => {
return [
document.getElementById('swal-input1').value,
document.getElementById('swal-input2').value
]
}
})
if (formValues) {
Swal.fire(JSON.stringify(formValues))
}
})()