javascript在同一个渲染屏幕上的多个表单

时间:2011-11-01 00:06:06

标签: javascript

我正在使用经典的ASP。

我有2个包含有两种不同形式的包含。它们在名称上都是独一无二的。但是,当我尝试读取第二种形式的元素的值时,我得到一个错误,说它是null。但是,当我在Firebug中查看源代码时,我可以看到该元素中存在一个值。

我的javascript代码:

console.log(document.getElementById('focusValue').value);

萤火虫的输出:

<input id="focusValue" type="hidden" value="1006" name="focusValue">

我有什么需要做的,因为这个“渲染”屏幕上有2个表单吗?我认为应该提到的另一件事是这些页面都在iFrame中。不确定这是否真的很重要......

2 个答案:

答案 0 :(得分:0)

看不到你的页面,所以很难调试。假设脚本在表单之后运行。我唯一能想到的是页面上有多个元素,其id为“focusValue”。

console.log(document.getElementById('focusValue'))

时会发生什么

答案 1 :(得分:0)

iFrame在包含文档中创建单独的文档,您需要先获取对该文档的引用,然后才能访问其内容。 http://www.dyn-web.com/tutorials/iframes/有一个合理的教程。

如果页面中只有一个iFrame,则可以通过以下方式引用它:

var frame = window.frames[0];

或者你可以使用带有 getElementById 的id。要获得对文档的引用:

var doc;
if (frame) {
  doc = frame.contentDocument || frame.contentWindow.document;
}

现在你可以进入输入元素:

var input = doc && doc.getElementById('focusValue');

当然,这一切都取决于您遵守相同的原始政策,否则您无法访问框架内容。