我遇到了javascript的问题,我执行以下操作来关闭弹出窗口并使用所需的值更新父窗口中的字段。代码看起来像这样:
<script language="javascript" type="text/javascript">
var FieldID = document.form.field22-1.value;
self.parent.opener.document.+FieldID = 'some text';
window.top.window.close();
</script>
但是我收到以下错误:
Error: missing ; before statement
我有一种有趣的感觉,javascript将字段id(字段22-1)解释为在其中有减法。我认为这是有道理的。任何想法/帮助都会被荒谬地欣赏,真的不想再回到并改变 - 在代码中!
提前致谢!
答案 0 :(得分:6)
改为使用document.getElementById('field22-1').value
。
您可能还需要解决此问题:
self.parent.opener.document[FieldID] = 'some text';
答案 1 :(得分:3)
在JavaScript中,任何对象的任何属性都可以通过点表示法访问,例如foo.bar
或括号表示法,例如foo["bar"]
。当您的财产不是合法标识符(如您的情况)时,后者是必要的:
var FieldID = document.form["field22-1"].value;
或者,如果这是实际的id
属性,则应使用:
var FieldID = document.getElementById('field22-1').value;
答案 2 :(得分:2)
您也可以使用document.form['field22-1'].value
。
答案 3 :(得分:1)
您可以使用document.getElementById('field22-1').value