Понадобилось выводить несколько однотипных форм за раз. Количество и данные брались из БД. Стал использовать formset'ы (наборы форм). Formset - в шаблонах по сути форма, где элементы формы разделяются автоматическими префиксами типа form-0-, form-1- и т.д. В представлении (view) это список форм. Удобная штука.

Столкнулся с проблемой при обращении к элементам формы через JavaScript. Например, надо было по клику почистить элемент формы. Написал сначала так:
{% for form in formset %}
    <span class="hand" onclick="clear({{forloop.counter0}})">Сброс</span>
.....
в скрипте:
function clear(number)
{
a = "form.form-"+number+"-f_na_timer.value=\"\";";
eval(a);
}
Но JavaScript'у не понравились минусы в названии элемента формы. Переписал по-другому:
function clear(number)
{
a = "form[\"form-"+number+"-f_na_timer\"].value=\"\";";
eval(a);
}
Всё работает.
Надеюсь гуру меня поправят, если что-то я делаю некорректно.

0 комментариев:

Отправить комментарий