これはそれほど難しいことではないと確信しています。次の関数 onsubmit を実行するフォームがあります。
function FORMVALIDATE_add_rota_entry() {
var rota_date = $("#rota_date").val();
var rota_id = $("#rota_id").val();
var am_pm = $("#am_pm").val();
if(rota_date == "")
{
alert("Please enter a date.");
return false;
}
if(rota_id == "error")
{
alert("Please select a rota from the list.");
return false;
}
// check if that rota has already been entered for that date and am/pm
$.ajax({
async:false,
type:"POST",
url:"/modules/rotas/check_rota_entry_existence",
data:{rota_date:rota_date, rota_id:rota_id, am_pm:am_pm},
success: function(result) {
if(result != "0")
{
alert("This rota has already been added to this date, "+am_pm+".");
return false;
}
}
});
}
次のように form タグで呼び出されます。
onsubmit="return FORMVALIDATE_add_rota_entry();"
そして、最初の 2 つの rota_date と rota_id で正常に動作し、必要なときにアラートが表示され、フォームの送信が停止しますが、ajax 呼び出しに到達すると正常になり、正しい結果が返され、アラートが発生したときにアラートが表示されます。すべきですが、 false を返すことでフォームの送信が停止しているようには見えません。私は困惑しているので、誰かアイデアはありますか?
ありがとう!