Дефис в DIV ID вызывает ошибку JavaScript - PullRequest
3 голосов
/ 19 января 2011

У меня проблема с 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 интерпретирует идентификатор поля (field22-1) как имеющее в нем вычитание. Что, я думаю, имело бы смысл. Любые идеи / помощь будут смехотворно оценены, на самом деле я не хочу возвращаться и изменять код!

Заранее спасибо!

Ответы [ 4 ]

6 голосов
/ 19 января 2011

Используйте document.getElementById('field22-1').value вместо.

Вам также может понадобиться исправить это:

self.parent.opener.document[FieldID] = 'some text';
3 голосов
/ 19 января 2011

В JavaScript к любому свойству любого объекта можно получить доступ либо через точечную нотацию, например, foo.bar, либо через скобку, например, foo["bar"].Последнее необходимо, когда ваша собственность не является юридическим идентификатором (как в вашем случае):

var FieldID = document.form["field22-1"].value;

В качестве альтернативы, если это фактический атрибут id, вы должны использовать:

var FieldID = document.getElementById('field22-1').value;
2 голосов
/ 19 января 2011

Вы также можете использовать document.form['field22-1'].value.

1 голос
/ 19 января 2011

Вы можете использовать document.getElementById('field22-1').value

...