2012-06-20 66 views
1
//Html - page containing link to open dialog 

<input type="text" value="something" id="inputbox_id" /> 
<a href="#" class="opendialog">Open</a> 

//Javascript 

.opendialog.click function 
{ 
$('.modaldialog').click(function(event) { 
    $('<div id="dialogContainer"> </div>').appendTo('body'); 

    //ajax call to page.php, if successful then add output of page.php to 
    //dialogContainer div created above 
    //page.php has a button and some javascript as below 
} 


//Html - content of page.php 
<input type="button" id="button" value="I am button" /> 

//Javascript on page.php 
// On click "#button" 
// $('#inputbox_id').val("Something New"); 

,但它沒有工作,而不是我「inputbox_id沒有定義」的錯誤....從模態對話框窗口中選擇opener頁面元素?

所以我改變了代碼

$('#input_box_id', 'body').val(); // didn't work 

$('body').find('#input_box_id').val("some value"); //Worked 

我的問題是 -

爲什麼$(selector,context)選擇器在這種情況下不起作用?這可以使用select body然後找到所需的元素嗎?你會提出更好的建議嗎?

單擊#button後如何關閉此對話框?

我感謝您的幫助!

UPDATE

對話框關閉的問題解決了 - 只需要調用$( 「#IdOfDialogContainer」)刪除()。

回答

0
$('#input_box_id', 'body').val(); 

此用法錯誤,您必須在第二個參數中給DOM元素。就像這樣:

$('#input_box_id', document.getElementsByTagName('body')).val(); 

另一種方法是 - 什麼您在您的文章中提到,這是在JQuery的官方網頁已經提到

$(body).find('#input_box_id').val(); 

內部,選擇上下文實現使用.find()方法, * so $('span',this)相當於$(this).find('span')。*

來源:http://api.jquery.com/jQuery/

所以,你不需要在第一種方式我說要實行,也不會有性能問題。

+0

啊!謝謝 ......... – user1421214

相關問題