2012-06-20 3 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"); 

하지만 모달 대화 상자 창에서 오프너 페이지 요소를 선택 하시겠습니까?

은 그래서

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

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

내 질문에 코드를 변경 .... 대신 작동하지 않았다 나는 "inputbox_id가 정의되지 않은"오류를 가지고 있습니다 -

이 경우 $ (selector, context) 선택자가 작동하지 않는 이유는 무엇입니까? 이 선택 몸을 사용하고 다음 필수 요소를 찾을 수 있습니까? 더 나은 것을 제안 해 주시겠습니까?

#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')와 같습니다. *

(210)

출처 : http://api.jquery.com/jQuery/

그래서, 당신은 성능 문제가되지 않습니다, 내가 말한 첫 번째 방법으로 구현 할 필요가 없습니다.

+0

아! 고마워 ......... – user1421214