То, почему делает Калитку, изменяет идентификатор элементов HTML?

Если я пишу

<form wicket:id="form" id="form>

или даже

<form wicket:id="form>...

Затем представленный HTML показывает идентификатору 'форму', добавленную с различными числами каждый раз, когда страница обновлена, например.

   <form id="form7"....

Существует ли способ отключить это поведение платформы Калитки?

9
задан Jonik 13 January 2012 в 09:59
поделиться

4 ответа

Это поведение, которое вы хотите в большинстве случаев при использовании калитки. Динамический идентификатор предназначен для предотвращения столкновений идентификаций ID, когда поведение Ajax добавляется к компонентам или добавленным к ответам AJAX для освежения. Для любых этих ситуаций вам действительно нужен как клиентский ответ, так и на стороне сервера, чтобы быть в Cahoots. Если есть внешние ресурсы JS, вам понадобится идентификатор компонента для поиска DOM, то я бы предложил добавить пользовательское поведение компонента Wicket, которое затем генерирует вызов JS к функции, проходящейся в сгенерированном идентификаторе.

Я понимаю, что я собираюсь описать, ведет вас больше в лес калитки. Но я был более чем доволен аяксистыми вещами, которые калитка открывается для вас из коробки.

6
ответ дан 4 December 2019 в 07:47
поделиться

Это было некоторое время, так как я работал с калиткой, но я помню, что Когда калитка использует элементы AJAX, его ID S Auto-Genered (ID тега, а не калитки : ID ). Вы можете управлять идентификатором тега, когда не используете элемент AJAX. В вашем случае, поскольку нет кода, я думаю, что вам придется изменить любой ajaxbutton или ajax * из вашей формы.

0
ответ дан 4 December 2019 в 07:47
поделиться

Это функция Doicket DoSing. Вы можете использовать класс для связывания стилей и компонентов.

<form wicket:id="form" id="form>

Также вы можете попробовать (я никогда этого не делал) SetmarkPid . Я не уверен, что это хорошо.

4
ответ дан 4 December 2019 в 07:47
поделиться

Мы широко устанавливаем идентификаторы разметки вручную в нашем проекте, чтобы ослабить автоматическое тестирование с помощью системы тестирования селена. Это определенно работает.

Component.setOutputMarkupId(true); // write id attribute of element to html
Component.setMarkupId("someid"); // id attribute of element is "someid"
18
ответ дан 4 December 2019 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: