Я недавно приобрел веб-продукт в моей компании. Первоначально он был разработан с использованием более старой версии Dojo, работающей поверх Catalyst / Template Toolkit (поэтому все это передается в Perl на серверной части). С тех пор я предпринял шаги, чтобы, по крайней мере, идти в ногу со временем и отправился в Додзё 1.5
Конкретно проблема, которую я сейчас пытаюсь решить, связана с разделительными идентификаторами. Это страница формы, которая сначала имеет поле со списком, раскрывающийся список и текстовое поле. В интересах краткости я сгущу это .....
HTML выглядит так ....
<div id="actions">
<div id="prelim_actions_1_div">
Variable: <input type="text" value=""
class=lighttext size=50
id="prelim_actions_xvar_1"
name="prelim_actions_xvar_1"/>
<a href="javascript:void();" title="Delete"
onclick="delete_section('prelim_actions_1_div')">
<img src="http://localhost:3000/static/images/16-square-red-delete.png"/></a>
<a href="javascript:void();" title="Insert Below"
onclick="add_action_below('prelim_actions', 'prelim_actions_1_div')">
<img src="http://localhost:3000/static/images/16-em-down.png"/></a>
</div>
</div>
Первый Javascript href позволяет вам удалить текстовое поле (title = "Delete"), а второй - добавить еще одно текстовое поле, которое успешно увеличивает идентификаторы делителей. В приведенном выше примере
<div id="actions">
успешно вложится в него ...
<div id="prelim_actions_1_div">
........
........
</div>
<div id="prelim_actions_2_div">
....
....
</div>
Проблема в том, что dang delete функция в JavaScript. Я нашел возможным с помощью различных комбинаций добавления и удаления, как у реального пользователя, вызывать ошибки в Firebug, пытаясь зарегистрировать уже зарегистрированный div и успешно писать несколько идентификаторов div с одинаковым именем.
Итак, мой вопрос, и я не ищу кого-то, кто мог бы напечатать мне решение (но я должен попытаться изучить это), заключается в том, существует ли более простой способ сделать это. Это возможность динамически добавлять и удалять текстовые поля и быть уверенным, что каждое из них имеет уникальный идентификатор (и имя) div, прежде чем будет нажата кнопка «Отправить».
У любых профессионалов по додзё / javascript есть какие-нибудь слова мудрости или ссылки, которые могут помочь мне указать верное направление?
Джени