-2

在父级上,我使用此函数将 div (id formhtml) 替换为 html (myhtml.html):

$("#formhtml").html('<object data="myhtml.html" id="idform" width="100%" height="100%">');

在 myhtml.html 里面,我有元素

<input type="text"  id="t_id_textbox" >

我被尝试从这样的函数调用

$("#formhtml").html(alert(document.getElementById('t_id_textbox').value));

错误 :

TypeError: parent.document.getElementById(...) is null

请帮助我如何t_id_textbox从父母那里获得价值?

4

2 回答 2

0
$(function() {
    $("#t_id_textbox").keyup(function(){
    $("#formhtml").html($('#t_id_textbox').val());
    });
});

JSFIDDLE 演示

用所需的输出更新了 OP 的小提琴:

ARTON 的更新 JSFIDDLE

于 2013-11-12T22:38:56.087 回答
0

除了在呼叫中设置警报的明显问题外.html(),问题可能是时间问题之一。

当你这样做时:

$("#formhtml").html('<object data="myhtml.html" id="idform" width="100%" height="100%">');

它创建一个对象,然后该对象加载该 HTML 文件。但它会异步加载该内容(例如,在后台,就像异步加载图像或 iframe 一样)并且您的 javascript 会继续运行。

因此,如果您立即在该 HTML 中查找一个元素,它可能尚未完成加载,因此该元素将不存在。

由于您有 jQuery,您可能希望使用 jQuery,.load()然后您可以使用完成函数来了解内容何时完成加载。

由于您尚未公开 HTML,因此我不确切知道您要完成什么,但您可以执行以下操作:

$("#formhtml").load("myhtml.html", function() {
    // in here the HTML will have been loaded
    alert($("#t_id_textbox").val());
});
于 2013-11-12T22:35:40.310 回答