У меня есть шаблон, который можно было бы отображать несколько раз в одном представлении.Лучшая практика для генерации html-идентификаторов с grails
Шаблон содержит форму, и у меня есть некоторые прослушиватели событий jquery, прикрепленные к элементам формы, используя идентификатор html.
На данный момент я использую 'g: set' для создания переменной elementId в верхней части шаблона с использованием текущего времени в миллисекундах и добавления его к каждому элементу формы. Таким образом, каждый элемент формы будет иметь уникальный идентификатор внутри страницы, независимо от того, сколько раз будет отображаться один и тот же шаблон.
Мой подход работает, но мне кажется, что должен быть лучший способ достичь того, что я хочу сделать?
Вот пример моего подхода:
<g:set var="elementId" value="${'elementId-' + new Date().getTime()}" />
<form>
<g:textField id="${elementId}name" name="name"/>
<g:textField id="${elementId}address" name="address"/>
</form>
<script>
$("#${elementId}name").on("click", myFunction())
$("#${elementId}address").on("click", myFunction())
</script>
Помимо моего ответа, проверьте также привязку javascript, вам не хватает закрывающих двойных кавычек для события «click», которое вы связываете. – lucke84
Извините. У меня нет доступа к моему проекту на данный момент. Синтаксис хорош там, поэтому его просто ошибка в моем вопросе. Мой подход работает, я просто чувствую, что, вероятно, должен быть лучший способ генерации идентификаторов. Может быть, нет? – Travis
Неправда, мой плохой. Каковы опасения по поводу этого подхода? Это выглядит прилично для меня. – lucke84