Javascript 允许在php jquery中ajax调用成功后提交表单操作 $(文档).ready(函数(){ $(“#formId”).submit(函数(事件){ 警报(“调用了.submit()的处理程序”); var数据=$(“#txtDriverpassword”).val(); var data1=$(“#driverId”).val(); $.ajax({ 键入:“获取”, url:“page.php”, 数据:{“数据”:数据,“数据1”:数据1,“方法”:“验证密码”}, 成功:功能(结果){ 如果(结果=“有效”){ //警报(“有效凭证…”); 返回true; } 否则{ 警报(“无效凭证”); 返回false; } }, 错误:函数(XMLHttpRequest、textStatus、errorshown){ //警报(“状态:+textStatus”);警报(“错误:+ERRORSHORN”); $(“#成功消息”).html(textStatus); } }); //event.preventDefault(); }); });
在表单中,我有一个带有动态数据的表,并使用Javascript 允许在php jquery中ajax调用成功后提交表单操作 $(文档).ready(函数(){ $(“#formId”).submit(函数(事件){ 警报(“调用了.submit()的处理程序”); var数据=$(“#txtDriverpassword”).val(); var data1=$(“#driverId”).val(); $.ajax({ 键入:“获取”, url:“page.php”, 数据:{“数据”:数据,“数据1”:数据1,“方法”:“验证密码”}, 成功:功能(结果){ 如果(结果=“有效”){ //警报(“有效凭证…”); 返回true; } 否则{ 警报(“无效凭证”); 返回false; } }, 错误:函数(XMLHttpRequest、textStatus、errorshown){ //警报(“状态:+textStatus”);警报(“错误:+ERRORSHORN”); $(“#成功消息”).html(textStatus); } }); //event.preventDefault(); }); });,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,在表单中,我有一个带有动态数据的表,并使用foreach对其进行验证。现在,对于单个输入验证,我只使用了一个ajax调用——如果ajax调用成功,那么表单需要提交。插入查询写在同一页中。我能知道怎么解决吗?防止默认是可行的,但是在ajax成功调用中删除默认事件是不可行的 如何解决?因为ajax调用是异步的,所以必须阻止第一次表单提交,然后在验证为真时进行新表单提交。 我还没有尝试过,但这应该可以工作(注意我引入的lock变量): $(文档).ready(函数(){ var-lock=false
foreach
对其进行验证。现在,对于单个输入验证,我只使用了一个ajax调用——如果ajax调用成功,那么表单需要提交。插入查询写在同一页中。我能知道怎么解决吗?防止默认是可行的,但是在ajax成功调用中删除默认事件是不可行的
如何解决?因为ajax调用是异步的,所以必须阻止第一次表单提交,然后在验证为真时进行新表单提交。 我还没有尝试过,但这应该可以工作(注意我引入的lock变量):
$(文档).ready(函数(){
var-lock=false;
$(“#formId”).submit(函数(事件){
如果(!锁定){
警报(“调用了.submit()的处理程序”);
var driverPassword=$(“#txtDriverpassword”).val();
var driverId=$(“#driverId”).val();
$.ajax({
键入:“获取”,
url:“page.php”,
数据:{“数据”:数据,“数据1”:数据AA,“方法”:“验证密码”},
成功:功能(结果){
如果(结果=“有效”){
//警报(“有效凭证…”);
$(“#formId”).submit();
}
否则{
警报(“无效凭证”);
}
lock=true;
},
错误:函数(XMLHttpRequest、textStatus、errorshown){
//警报(“状态:+textStatus”);警报(“错误:+ERRORSHORN”);
$(“#成功消息”).html(textStatus);
}
});
event.preventDefault();
}
});
});
开始时定义一个新变量bHasValidated并将其设置为false
<script>
$(document).ready(function () {
var lock = false;
$("#formId").submit(function (event) {
if(!lock) {
alert("Handler for .submit() called.");
var driverPassword = $("#txtDriverpassword").val();
var driverId = $("#driverId").val();
$.ajax({
type: "GET",
url: "page.php",
data: {"data": data, "data1": dataaa, "method": "verifypassword"},
success: function (result) {
if (result === "valid") {
// alert('valid credentials....');
$("#formId").submit();
}
else {
alert("invalid credentials");
}
lock = true;
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
// alert("Status: " + textStatus); alert("Error: " + errorThrown);
$("#successMessage").html(textStatus);
}
});
event.preventDefault();
}
});
});
<script>
然后在成功处理程序上,将变量设置为true并提交工作
var bHasValidated = false;
$("#formId").submit(function (event) {
if( bHasValidated ) return true;
// --- the AJAX code here ----
//event.preventDefault(); remove preventDefault
return bHasValidated;
});
希望它能起作用:)
var bHasValidated = false;
$("#formId").submit(function (event) {
if( bHasValidated ) return true;
// --- the AJAX code here ----
//event.preventDefault(); remove preventDefault
return bHasValidated;
});
success: function (result) {
if (result === "valid") {
bHasValidated = true;
$('#formid').submit();
}
}