我正在嘗試檢查表單中的選擇,如果選擇的選項是現金,則提交否則它呼叫 API 并回傳成功回應,表單應該繼續并提交
我的 Javascipt
document.getElementById('myform').addEventListener('submit', checkPayment);
function checkPayment(event) {
var payment = document.getElementById('payment').value;
var phone = document.getElementById('phone').value;
if (payment == "Cash") {
alert("Paying with Cash!");
} else {
alert("Paying with Mpesa!");
var valid = false;
event.preventDefault();
$.ajax({
url: 'payment/MpesaProcessor.php',
type: 'POST',
data: {
'amount': $('#parkingcharge').val(),
'phone': $('#phone').val(),
},
success: function(text) {
console.log(text);
if (text == "success") {
alert("Click Ok Once Payment Has been Received");
event.preventDefault();
$('#myform').submit();
} else {
alert("Payment Not Successful")
}
}
});
}
}
uj5u.com熱心網友回復:
如果 AJAX 呼叫成功,您可以嘗試使用全域變數來存盤
document.getElementById('myform').addEventListener('submit', checkPayment);
var isSuccess = false;
function checkPayment(event) {
var payment = document.getElementById('payment').value;
var phone = document.getElementById('phone').value;
if (payment == "Cash") {
alert("Paying with Cash!");
} else {
alert("Paying with Mpesa!");
var valid = false;
if (isSuccess) {
return;
}
event.preventDefault();
$.ajax({
url: 'payment/MpesaProcessor.php',
type: 'POST',
data: {
'amount': $('#parkingcharge').val(),
'phone': $('#phone').val(),
},
success: function(text) {
console.log(text);
if (text == "success") {
alert("Click Ok Once Payment Has been Received");
isSuccess = true;
$('#myform').submit();
} else {
alert("Payment Not Successful")
}
}
});
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
<head>
</head>
<body>
<form id="myform">
<select id="payment">
<option value="Cash" >
Cash
</option>
<option value="Mpesa" >
Mpesa
</option>
</select>
<input id="parkingcharge" type="number" step="any" />
<input id="phone" />
<input type="submit"/>
</form>
</body>
</html>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/334625.html
標籤:javascript 查询 防止违约
上一篇:來自表列的資料中不需要的前導空格
