Search code examples
javascriptjqueryajaxcoldfusionchaining

Cant Defer or Delay ColdFusion.navigate() , ColdFusion.Ajax.submitForm()


Maybe there is something screwy with Coldfusion's Ajax functions, but I cant figure this one out... Im just trying to post some data using ColdFusion.Ajax.submitForm, then load new content into #CartPopup using ColdFusion.navigate. I need Details.cfm to finish processing the form data before I load the Div.

function add2Cart(prodid){
    var submit = ColdFusion.Ajax.submitForm('AddToCart', 'Details.cfm');
    setTimeout("navigate(prodid)", 2000);
}

function navigate(prodid){
    ColdFusion.navigate('divbind.cfm?PRODID='+ prodid,'CartPopup','CB','EH');
    return false;   
}

Do perhaps a delay isn't the best way. I thought of using:

jQuery.when

but I'm wondering if maybe my issue if with the CF ajax functions... I'm super grateful for any insight or alternative approaches.

Thanks!


Solution

  • Your first snippet of code should be:

    function add2Cart(prodid){
        ColdFusion.Ajax.submitForm(
            'AddToCart',
            'Details.cfm',
            function() { navigate(prodid); },
            function() { alert('Error happened - form was not submitted'); }
       );
    }
    

    As you can see here submitForm can receive 2 callback handlers, one when the submit is done and one for error handling.