我在此代码中遇到问题。 我想选择是否提交 是否基于ajaxcall的结果形成。
如果我使用return false对其进行硬编码;它停止进入paypal网站。 这就是为什么我希望它依赖于ajax succes函数中的变量集。
这可能在回调中丢失了,所以这就是我寻求帮助的原因。
这是代码:
$("#img_download").click(function(e){
$("#main_content").find('span').not('#loading').remove();
loading.fadeIn(1000);
$("#main_content").load("../../../includes/snip.php #betaalbox", function(){
var invoerGebruikersnaam = $("#gebruikersnaam");
var invoerEmail = $("#email");
loading.hide();
if($("#uitloggentaxibel").size()!=0){
//alert('we zijn ingelogd');
$('#idgebruikerbox').hide();
ingelogd=1;
}else{
invoerEmail.focus();
//alert('we zijn niet ingelogd');
}
$('form#paypalio').submit(function(){
if(invoerGebruikersnaam.attr("value") && invoerEmail.attr("value")){
alert('is gecheckt, check ook op geldig emailadres');
//check ook voor een geldig emailadres
//OK, dan...
//vergelijk met db gegevens
gebruikersnaam = invoerGebruikersnaam.attr("value");
email = invoerEmail.attr("value");
$.ajax({
url: "/includes/pdt_paypal.php",
data: ({gebruikersnaam: gebruikersnaam, actie: "idgebruikercheck", email: email}),
cache: false,
type: "POST",
dataType: "json",
timeout: 5000,
success: function(data,textStatus){
//$('#main_content').html(data.responseText);
//sla geretourneerde gegevens bij gebruiker op
identificatie=data.check;
if(identificatie=="ok"){
customstring=email;
$('.bericht.idgebruikerfout').html('identificatie was ok').show();
}else{
$('.bericht.idgebruikerfout').html('identificatie heeft gefaald').show();
annuleerPayPal="ok";
}
}//EINDE success
,error: function(XMLHttpRequest, textStatus, errorThrown) {
if(textStatus == 'timeout') {
//doe iets
}else if (textStatus == 'error'){
//doe iets
}
}//EINDE error
});//EINDE ajax
//ZOJA, dan...
}else{
$('.bericht.idgebruikerfout').html(idfout2).show();
return false;
}
if(annuleerPayPal=="ok"){return false;}
//return false;
});//EINDE submit
});//EINDE load
});
编辑,因为
我通过删除设置变量的逻辑来解决它,因为它丢失了。 我最好的猜测是不同的回调返回到不同的上下文。
无论如何,通过更直接,通过在一个上下文(回调)中评估if / else语句块,我只是Instruct提交表单。 $( '形式')提交();
解决
谢谢,理查德答案 0 :(得分:3)
在顶部附近添加:
var SubmitForm = false;
然后在通过验证后添加:
if(identificatie=="ok"){
SubmitForm = true; //<--- this part
customstring=email;
然后返回该变量而不是返回flat true或false;
return SubmitForm;
快速修改:
我假设你想根据ajax请求返回的内容提交表单,而不是简单地成功。同样的想法适用,你只需要添加:
SubmitForm = true;
在if(identificatie=="ok"){
之前而不是之后,以便在请求成功后立即变为true。