无法推迟或延迟ColdFusion.navigate(),ColdFusion.Ajax.submitForm()

时间:2011-11-26 09:41:54

标签: javascript jquery ajax coldfusion chaining

也许Coldfusion的Ajax函数有些麻烦,但我不能想出这个......我只是想用ColdFusion.Ajax.submitForm发布一些数据,然后使用{{#CartPopup将新内容加载到ColdFusion.navigate 1}}。在加载Details.cfm之前,我需要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;   
}

或许延迟不是最好的方法。我想过使用:

jQuery.when

但我想知道如果使用CF ajax函数可能是我的问题......我非常感谢任何见解或替代方法。

谢谢!

1 个答案:

答案 0 :(得分:2)

您的第一段代码应为:

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

正如您所看到的,here submitForm可以接收2个回调处理程序,一个在提交完成后,另一个用于错误处理。