Hello!
Thanks you your answer, but it seems like it didnt help!

function pnrexists(a){
        $.ajax({
                async: true,
                url: '/inc/chkusr.php?q=p',
                type: 'POST',
                dataType: 'html',
                data: {'pnr': a},
                timeout: 2000,
                success: function(data) {
                        if(data==1){
                                alert('true');
                                return true;
                        }else{
                                return false;
                        }
                }
        });
}

$.validator.addMethod("pnrcheck", function(ph, element) {
        if(persnr(ph)) {
        alert('1');
                if(pnrexists(ph)) {
                alert('2');
I see:
alert 1 and alert true

setting the async to false dont seems to help either!
Any idea?


On Feb 27, 7:39 pm, James <james.gp....@gmail.com> wrote:
> The issue here is that AJAX is asynchronous. The the moment you're
> checking pnrexists(ph), it'll execute the AJAX but nothing is returned
> "at that moment" (which means it is not-true, so the if-statement
> fails). Then a few milliseconds later, your AJAX response has
> returned, but the code is way passed the if-statement by then already.
> Try adding the 'async: true' to the $.ajax() option. This tells the
> rest if your code to wait for the AJAX response before continuing.
>
> On Feb 27, 8:00 am, Gelegrodan <gelegro...@gmail.com> wrote:
>
> > Hello
> > I have the following code:
>
> > function pnrexists(a){
> >         $.ajax({
> >                 url: '/inc/chkusr.php?q=p',
> >                 type: 'POST',
> >                 dataType: 'html',
> >                 data: {'pnr': a},
> >                 timeout: 2000,
> >                 success: function(data) {
> >                         if(data==1){
> >                                 alert('true');
> >                                 return true;
> >                         }else{
> >                                 alert('false');
> >                                 return false;
> >                         }
> >                 },
> >         });
>
> > }
>
> > the code above is triggered by:
>
> > $.validator.addMethod("pnrcheck", function(ph, element) {
> >         alert('1');
> >         if(persnr(ph)) {
> >                 alert('2');
> >                 if(pnrexists(ph)) {
> >                 alert('3');
> >  the code continues..but noting to show...
>
> > The problem is: I see:
> > alert 1
> > alert 2
> > alert true
> > but NOT alert 3?? Why?

Reply via email to