2012-10-16 40 views
1

加載下面的值,假設我有A.html點擊按鈕打開一個用戶界面對話框, ,對話框將加載B.html的內容。如何從jQuery UI的對話從外部頁

所以,如果我想獲得該ID = inputName在用戶後B.html點擊按鈕對話框上的「OK」,我該怎麼辦的價值?我總是得到「未定義」。

對不起,也許一個愚蠢的問題becase的我是新來的jQuery。 我會非常apreciate如果你能幫助我。

A.html


$(function(){ 
    $('#name').click(function(){ 
     var aaa = window.parent.$.dialog({ 
      buttons: { 
       'ok': function(){ 
        //get the value from B.html(ex.the value which id=inputName) 
        $aaa.dialog('close'); 
       } 
      } 
     }); 

     var link = 'B.html'; 
     aaa.load(link); 
     aaa.dialog('open') 
    }); 
}); //jquery code 


<div> 
    <input type="button" value="input your name" id='name'> 
</div> //html code 

B.html


<input type="text" name="inputName" id="inputName"/> 

回答

0

其實,我想獲得在B.html值由Ajax請求的CGI的目的。 以另一種方式,我做這個工作,加入以下代碼B.html

<script type="text/javascript"> 
var okBtn = $('.ui-dialog-buttonpane').children("button:last"); 
okBtn.click(function(){ ajaxRequest(); }); 

function ajaxRequest() { 
     var data 
     data.name = $('#inputName').val(); 
     var url="(cgi link)"; 
     $.get(url,data); 
     return; 
} 
</script> 
0

這裏的問題是,.load()是異步的。

一種可能的方案是以下。重點是隻有在加載完成後才能彈出對話框,即在回調中。請注意,在下面的例子中,一股無形的元素爲您加載HTML持有人創造。當加載完成後,你可以遍歷它的孩子,或從文件只是讓你的元素:

<h1 id="dialogtest">Click me for a dialog!</h1> 
<script type="text/javascript"> 
var myElementValue = null; 
$(function(){ 
    $('#dialogtest').click(function(){ 
    var dialogElement = document.createElement("div"); 
    var link = 'B.html'; 
    $(dialogElement).load(
     link, 
     function(responseText, textStatus, XMLHttpRequest) { 
      alert('Load complete: ' + responseText + "; " + textStatus + ";\n " + dialogElement.outerHTML); 
      var myDialog = $(dialogElement).dialog({ 
       autoOpen: false, 
       buttons: { 
        'ok': function(){ 
         // You can traverse the childNodes of dialogElement, or do just thie following. 
         // For example, this is the value of a text node: 
         myElementValue = document.getElementById("myElement").childNodes[0].data; 
         alert(myElementValue); 
         myDialog.dialog('close'); 
        } 
       } 
      }); 
      $(myDialog).dialog('open'); // Can autoOpen it above instead 
     } 
    ); 
    }); 
}); //jquery code 
</script> 
+0

謝謝,但現在看來似乎不爲我工作,我發現在這項工作中的另一種可能的解決方案。 – user1654321

+0

它的工作正如但是,真的,它不能只是複製並粘貼到你的代碼。 –

+0

是的,我知道,但在這項工作中,我需要使用「window.parent。$。對話框」,彈出已定製的對話框。 也許一些錯誤的替換。 – user1654321

相關問題