从模态对话框窗口中选择开启者页面元素?

时间:2012-06-20 16:58:23

标签: javascript jquery modal-dialog

//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未定义”....

所以我将代码更改为

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

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

我的问题是 -

为什么$(选择器,上下文)选择器在这种情况下不起作用?这可以使用select body然后找到所需的元素吗?你会建议更好的吗?

单击#button后如何关闭此对话框?

感谢您的帮助!

更新

对话关闭问题已解决 - 只需要调用$(“#IdOfDialogContainer”)。remove();

1 个答案:

答案 0 :(得分:0)

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

这种用法是错误的,你必须在第二个参数中给出DOM元素。像这样:

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

另一种方式是 - 你在帖子中提到了什么,

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

在JQuery官方网页上已经提到过:

  

在内部,选择器上下文是使用.find()方法实现的   *所以$('span',this)相当于$(this).find('span')。*

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

所以,你不需要以我说的第一种方式实现,不存在性能问题。