2014-02-10 50 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.