2014-02-10 53 views
2
<div id="validationPages"> 
    <div id="page1Div"></div> 
    <div id="page2Div"></div> 
    <div id="page3Div"></div> 
    <div id="page4Div"></div> 
</div> 

<script type="text/javascript"> 
    $("#page1Div").load("page1.html"); 
    $("#page2Div").load("page2.html"); 
    $("#page3Div").load("page3.html"); 
    $("#page4Div").load("page4.html"); 

    alert($("#validationPages").find("input[type=text]").length); 
    $("#validationPages").find("input[type=text]").validate(); 
</script> 

這裏我在四個div中加載四個html頁面。這些頁面每個都有一些輸入字段,並且這些輸入字段在ajax調用中填充來自數據庫的值。如何等待所有頁面加載以獲取這些頁面的元素?

例: page1.html:

$.ajax({ 
    type: 'POST', 
    url: "GetAmount", 
    success: function(data, textStatus, xhr){ 
     $("#amount").val(data.amount); 
    } 
}); 

後,我填補所有的輸入字段我想將它們傳遞給函數調用的validate()來驗證。

在我的代碼警報是給總輸入字段長度爲'0',我該如何等待,直到所有頁面加載值,以便我可以將它們傳遞給validate()函數?

- >$(document).ready()不起作用。

+2

退房答案在這裏:http://stackoverflow.com/questions/9856924/jquery-when-and-multiple-load – Will

+0

你可以傳遞變量'的validate()'函數在阿賈克斯'success' –

+3

我發佈的鏈接是要走的路,但您也可以通過從前一個load()回調調用每個load()來鏈接load()。 ''(「#page1Div」).load('1.html',function(){$(...)。load。('2.html',function(){load。('3.html', function(){等等}}'在最後的回調函數中執行你的程序代碼,但是,是的,被攻擊了。 .html – Will

回答

0
Try this code. 




<script type="text/javascript"> 
    $("#page1Div").load("page1.html", function(){ 
      $("#page2Div").load("page2.html", function(){ 
        $("#page3Div").load("page3.html", function(){ 
          $("#page4Div").load("page4.html", function(){ 
            alert($("#validationPages").find("input[type=text]").length); 
            $("#validationPages").find("input[type=text]").validate(); 
         }); 
       }); 
      }); 
    }); 
</script> 

Here one by one each page loaded. Once all the page get load we have pass the "validate function". In case any issue please let me know.