У меня проблема с этим кодом.
Я хочу выбрать, буду ли я отправлять
Форма или нет на основе результата от ajaxcall.
Если я жестко закодировал его, вернул 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 в одном контексте (обратный вызов), я просто приказываю отправить форму.
$ ( 'Форма') представляет ();.
решена
спасибо, Ричард