2010-09-21 52 views
0

我有一個jQuery的函數,當我的表格表被創建時掛鉤了一個javascript函數,只是它似乎響應得太快了。Ajax響應太快?

我被調用的函數是:

function ValidateForm(CQID) 
    { 

var dt=document.newDate.txtDate; 

if (isDate(dt.value)==false){ 
    dt.focus(); 
    return false; 
} 

    populateDateTable(dt.value, CQID); 
    } 

此功能只當我添加一個空警報(「」);最後,否則它會通過並不提交ajax請求。

在我的populateDateTable()函數中,我包含了適當的就緒狀態條件。

xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
     document.getElementById("BoxCarCapacityDates").innerHTML= xmlhttp.responseText; 
     } 
    } 

有什麼我沒有包括正確的?

回答

0

你能發表更多的代碼嗎?就像從你調用validateform()的地方和調用ajax的地方一樣。它總是按順序調用函數。如果你希望只有在某個函數被執行後調用ajax,只需在ajax結尾處調用ajax功能..

例如..

function your_normal_function() 
{ 
//function code; 

ajax_fun(); 
} 


function ajax_fun() 
{ 
    // ajax function code here 

} 


something.onmouseout = your_normal_function; 
1

是Ajax代碼實際上打你的Web服務器?如果是,訪問日誌中會有一個顯示它確實存在的問題。你最好使用類似jquery或mootools的東西,而不是滾動你自己的AJAX處理代碼。它們隱藏了瀏覽器之間所有挑剔的差異,簡化了整個AJAX體驗,並且還可以在發生錯誤時提供更好的反饋。