#javascript #smarty
#javascript #smarty
Вопрос:
Что в этом плохого, я хочу передать значение в поле конкретной формы
var formid = 'addtaskform{/literal}{$smarty.session.formno}{literal}';
document.formid.title.value = 'yeah';
я получаю эту ошибку
TypeError: document.getElementById(...) is null
Ответ №1:
В этом случае нет никаких проблем с конкатенацией. Вероятно, вы делаете что-то еще неправильно.
Посмотрите на следующий пример:
PHP-файл:
$_SESSION['formno'] = 5;
$smarty->display('test.tpl');
Файл шаблона Smarty:
<input type="text" id="addtaskform5" value="5" />
<script type="text/javascript">
{literal}
var formid = 'addtaskform{/literal}{$smarty.session.formno}{literal}';
document.getElementById(formid).value = 'yeah';
{/literal}
</script>
Все работает нормально. Значение ввода изменяется с 5
на yeah
Ответ №2:
Скорее всего, у вас на вашем сайте нет элемента формы с идентификатором formid
, по крайней мере, это не то, чего вы на самом деле хотите достичь.
То, что вы ищете, это:
document[formid].title.value = 'yeah';
document.formid
(Точечная нотация): получить элемент с идентификатором formid
document[formid]
(Скобочная нотация): получить элемент с идентификатором, который хранится в значении formid