im new using sweet alert,首先我将展示代码:
$('#byr').keydown(function (e){
var bayar = Number($('#byr').val());
var total = Number($('.rp-harga').text());
var kmb = $('.rp-kmb').text();
if(e.keyCode == 13)
{
if(bayar<total)
{
alert("Uang Anda Kurang");
}
else {
swal("Transaksi Berhasil", "Kembalian : Rp " + (bayar-total).toString(), "success");
}
}
});
问题是当我用输入文字填充输入后用其他条件时,它会显示甜蜜警报,但是在我点击确定按钮或在出现甜蜜警报时点击输入时,甜蜜警报会立即关闭
我尝试添加e.preventDevaults()
,并解决了这些问题:
Here是一个有问题的JSFiddle。
答案 0 :(得分:3)
我假设你正在使用sweetalert2。这个插件有一个配置选项:
allowEnterKey :如果设置为false,则用户无法通过按Enter键或空格键来确认模态,除非他们手动对焦确认按钮。
因此你可以:
在10毫秒后调用 swal 以克服第一个keydown的以下src代码:
window.onkeydown = handleKeyDown;
$('#byr').keydown(function (e) {
var bayar = Number($('#byr').val());
var total = 0;
if (e.keyCode == 13) {
if (bayar < total) {
alert("Uang Anda Kurang");
}
else {
setTimeout(function() {
swal({
title: "Transaksi Berhasil",
text: "Kembalian : Rp " + (bayar - total).toString(),
type: "success",
allowEnterKey: true // default value
});
}, 10)
}
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/sweetalert2/6.6.2/sweetalert2.min.css">
<script src="https://cdn.jsdelivr.net/sweetalert2/6.6.2/sweetalert2.min.js"></script>
<input type="text" id="byr">
&#13;