Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как использовать "нестандартное" имя переменной при вызове функции? (https://javascript.ru/forum/events/8883-kak-ispolzovat-nestandartnoe-imya-peremennojj-pri-vyzove-funkcii.html)

Pekkonen 19.04.2010 00:19

Как использовать "нестандартное" имя переменной при вызове функции?
 
Привет.
Возникла необходимость заточить javascript popup календаря под себя.
В качестве переменной функции надо закинуть названия input'a, а оно имеет "нестандартное" для javascript'a имя вида:
<input name="tx_pilmailform_pi1[text][data_from]">

То есть в куске кода ниже, надо как то заменить имя date на tx_pilmailform_pi1[text][data_from] оставив работоспособность.
Вопрос как это сделать?
// Easy method to link the popup calendar with an input box.
cal.select(inputObject, anchorname, dateFormat);
// Same method, but passing a default date other than the field's current value
cal.select(inputObject, anchorname, dateFormat, '01/02/2000');
// This is an example call to the popup calendar from a link to populate an
// input box. Note that to use this, date.js must also be included!!
<A HREF="#" onClick="cal.select(document.forms[0].date,'anchorname','MM/dd/yyyy'); return false;">Select</A>

Octane 19.04.2010 00:30

document.forms[0]["tx_pilmailform_pi1[text][data_from]"]

или
document.getElementsByName("tx_pilmailform_pi1[text][data_from]")[0]

Pekkonen 21.04.2010 00:25

Octane,
Спасибо за ответ.
только сейчас удалось проверить ваши варианты.
Оба не работают, по крайней мере в таком синтаксисе, как приведены в посте :(
Браузер (IE) ругается именно на неправильный синтаксис в этой строке.
У меня помимо вызова:
<A HREF="#" onClick="cal.select(document.forms[0].date,'anchorname','MM/dd/yyyy'); return false;">Select</A>
есть еще такой кусок HTML
<a href="#" onclick="cal13.select(document.forms[0].date14,'anchor14','dd/MM/yyyy',(document.forms[0].date14.value=='')?document.forms[0].date13.value:null); return false;" title="cal13.select(document.forms[0].date14,'anchor14','dd/MM/yyyy',(document.forms[0].date14.value=='')?document.forms[0].date.value:null); return false;" name="anchor14" id="anchor14">select</a>

Что бы еще попробовать?

Octane 21.04.2010 00:32

Цитата:

Сообщение от Pekkonen
Оба не работают, по крайней мере в таком синтаксисе, как приведены в посте

Всё работает:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>…</title>
</head>
<body>
<form action="">
	<input name="tx_pilmailform_pi1[text][data_from]" value="O_o" />
</form>
<script type="text/javascript">
	alert(document.forms[0]["tx_pilmailform_pi1[text][data_from]"].value);
</script>
</body>
</html>


Часовой пояс GMT +3, время: 21:45.