Отрисовать отключенную кнопку в JSF - PullRequest
0 голосов
/ 01 сентября 2011

Я пытаюсь сделать кнопку, которая должна быть изначально отключена и в какой-то момент активирована действиями на стороне клиента. Я использую компонент из a4j со следующим кодом:

<a4j:commandButton id="myButton" disabled="true" onclick="myFunction()">

Проблема в том, что если для атрибута disabled установлено значение true, события не присоединяются к компоненту, в результате чего получается HTML-код:

<input type="button" onclick="return false" ... />

Поэтому, когда я пытаюсь включить через javascript, кнопка включена, но к кнопкам не подключены прослушиватели событий.

Пока что есть только два решения:

  • Назначение значения отключенного атрибута свойству бина и повторная визуализация кнопки.
  • Визуализация изначально включена и отключена на странице загрузки через javascript

Оба варианта будут работать, но они не очень чистые, я не хочу делать петицию на сервер каждый раз, когда активирую кнопку.

1 Ответ

2 голосов
/ 01 сентября 2011

Вот как работает MVC-инфраструктура на основе компонентов, такая как JSF. Как часть защиты от несанкционированных / взломанных запросов, платформа переоценивает атрибут disabledrendered) входного элемента всякий раз, когда он собирается применить значения запроса. В противном случае конечные пользователи смогут вызывать действия или отправлять значения, которые они не могут делать из-за ограничений на стороне сервера, которые потенциально могут открыть двери для атак.

Два решения, которые вы упомянули, прекрасно. Я бы выбрал первый, если вы не хотите, чтобы конечный пользователь мог взломать или взломать его. Это легко сделать с помощью ajax.

...