显示jquery对话框

时间:2011-03-26 09:00:31

标签: jquery xml jquery-ui xml-serialization linq-to-xml

XML

<?xml version="1.0" encoding="utf-8"?>
<Questions>
  <Question>
   <Id>1</Id>
   <Text>aaaa</Text>    
 </Question>
 <Question>
    <Id>2</Id>
    <Text>bbb</Text>    
 </Question>
</Questions>

HTML

<table dir="rtl" width="400px">
           <tr>
                <td>
                    <span id="signuptitle">ques* : </span>
                 </td>
                 <td>
                    <select id="sctQuestion" name="D2">
                        <option></option>
                     </select>
                 </td>
           </tr>

代码1

function PopupUserRegist() {        
     $.ajax({   
     type: "GET",
     url: "../Administrator/Questions.xml",
     success: parseXmlQuestion
     });

    function parseXmlQuestion(xml)
    {
       $(xml).find("Question").each(function()
       { 
          var value=$(this).find('Text').text();      
          $("#sctQuestion").
          append($("<option></option>").
          attr("value",value).
          text(value)); 
    });
   }
 $("#div_userregist").dialog("open");
}

     $(function () {

        $("#dialog:ui-dialog").dialog("destroy");
        $("#div_userregist").dialog({ autoOpen: false,
            buttons: {
                "ok!": function () {                                                  
                }
        }); 
    });

此代码获取XML成功。

=============================================== ===========================

代码2

function PopupUserRegist() {        
     $.ajax({   
     type: "GET",
     url: "../Administrator/Questions.xml",
     success: parseXmlQuestion
     });
    function parseXmlQuestion(xml)
    {
      $(xml).find("Question").each(function()
      { 
          var value=$(this).find('Text').text();
          $("#sctQuestion").
             append($("<option></option>").
             attr("value",value).
             text(value)); 
        });
  }     
   $(function () {

        $("#dialog:ui-dialog").dialog("destroy");
        $("#div_userregist").dialog({ autoOpen: true,
            buttons: {
                "ok!": function () {                                                  
                }
        }); 
    });
}

此代码未获得XML成功。

=============================================== ==================

=============================================== ==================

Code1中的

:autoOpen:false和code2:autoOpen:true

在code1中获取xml成功,但在code2中:不获取xml。

1 个答案:

答案 0 :(得分:0)

当对话框是autoOpened时,可能是在XML完全加载和解析之前。我会在parseXmlQuestion()的末尾调用对话框,以便时间对于脚本的所有部分都是正确的。

如果您在用户等待时需要加载指示器,请使用以下内容:

$('body').append('<div id="ajaxBusy"><p><img src="images/loading.gif"></p></div>');

// Ajax activity indicator bound to ajax start/stop document events
$(document).ajaxStart(function(){
  $('#ajaxBusy').show();
}).ajaxStop(function(){
  $('#ajaxBusy').hide();
});