所以我有一个正在提交的 PHP 表单isset($_POST[])。我写了一个 js 函数,它运行一些if-else应该使用的代码,return true/false但它不是,并且无论如何都会提交表单。我试过使用,e.preventDefault()但这对我也不起作用。我还尝试将 true/false 放在 var 中out = true/false(当然,我将它们放在不同的 var 中作为 if 和 else),然后尝试将它们作为return out. var 中真/假的代码 -function submitFunc(a, b) { if (a >= b) { alert("*Duration cannot be greater than Quoted Hours"); out = false; } else { out = true; } window.location = "add_working_details.php"; return out;}原始代码 -function submitFunc(a, b) { if (a >= b) { alert("*Duration cannot be greater than Quoted Hours"); // event.preventDefault(); //out = false; return false; window.location = "add_working_details.php"; } else { // out = true; return true; } //return out; // window.location = "add_working_details.php";}AJAX 函数——$("#submit").click(function(){//comparing the total quoted hours with duration of time selected ticket_id = $('#ticket_no').val(); total_hours = $('#total_hours').val(); var user_dur, ud, th; $.ajax({ url: 'comp_time.php', type: 'GET', data: {ticket_id: ticket_id, total_hours: total_hours} , success: function (response) { // console.log("response", response); var resp = response; user_dur = $('#time_duration').text(); ud = compare_time(user_dur); //user duration th = Number(resp); //total quoted hours submitFunc(ud, th); } }); });所以我相信返回false应该停止提交表单,然后window.location它应该重定向到我想要的页面,但它没有这样做。如果我的逻辑有误,请纠正我。谢谢你的时间。
2 回答
小唯快跑啊
TA贡献1863条经验 获得超2个赞
首先,无论事件结果如何,您的功能都应阻止提交
$("#submit").click(function(e){
e.preventDefault();
其次,您需要从函数中删除返回值,它们不会影响您的点击事件
function submitFunc(a, b) {
if (a >= b) {
alert("*Duration cannot be greater than Quoted Hours");
} else {
window.location = "add_working_details.php";
}
}
芜湖不芜
TA贡献1796条经验 获得超7个赞
$('#form').submit(function(e) {
if (submitFunc(1, 2)) {
$.ajax({});
} else {
e.preventDefault();
}
})
添加回答
举报
0/150
提交
取消