I have this script, which in some cases may require user input. It works, but the script continues regardless of the result of the Sweet Alert input.
$('#cart').on('click', '.button', function() {
var code = $(this).data('code')
if ((code !== '') && (code !== null) && (code !== undefined)) {
var repeated = 0
var secondary = null
if (code.startsWith('ABC')) {
swalBs.fire({
text: 'Enter secondary code',
showCancelButton: true,
cancelButtonText: 'Cancel',
showConfirmButton: true,
confirmButtonText: 'Confirm',
reverseButtons: true,
input: 'text',
inputValidator: (value) => {
if (!value) {
return 'Code required'
}
}
})
.then((result) => {
console.log(result)
secondary = result.value
})
}
if (repeated < 1) {
$.post(serviceUrl, {
c : code,
s : secondary
}, function(response) {
...
})
.fail(function() {
...
})
} else {
swalBs.fire('Error', 'Code already entered', 'error')
}
} else {
swalBs.fire('Enter code', 'Field must not be blank.')
}
})
How can I make this script wait for the Sweet Alert input while still allowing the $.post
to happen when the if (code.startsWith('ABC'))
condition is not met (and Sweet Alert is not needed)?