2011-11-26 55 views
1

也许有一些与Coldfusion的Ajax功能扭曲,但我不能弄清这一个出来......我只是想使用ColdFusion.Ajax.submitForm张贴一些数据,然后使用ColdFusion.navigate将新内容加载到#CartPopup。在加载Div之前,我需要Details.cfm来完成表单数据的处理。无法推迟或延迟ColdFusion.navigate(),ColdFusion.Ajax.submitForm()

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功能......我对任何见解或替代办法超级感激我想知道如果也许我的问题。

谢谢!

回答

2

你的代码第一个片段应该是:

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

正如你可以看到heresubmitForm可以接收2个回调处理程序,一个当提交完成后,一个用于错误处理。

+0

谢谢,这很好。另外我需要onsubmit =“返回false;”对于我的表单提交,否则它刷新页面。 –