Я разрабатываю веб-приложение с использованием A4J, Richfaces. Одно из моих требований: мне нужно проверить, изменил ли пользователь какие-либо значения в форме, когда он пытается перейти от страницы.Перехват a4j: commandButton request
У меня есть кнопки сохранения и отмены на странице. Я использую кнопку a4j:command
для отмены функциональности. При нажатии на кнопку отмены нужно сделать ниже вещи
- Проверьте, если пользователь изменил что-либо в форме (это я делаю с помощью JavaScript и иметь флаг, если пользователь изменил какие-либо значения)
- Показать окно подтверждения (JavaScript подтвердить со значениями «вы действительно хотите отказаться от изменений - ДА НЕТ») при изменении пользователем формы значения
- Если пользователь говорит ДА, а затем представить форму с помощью AJAX (с помощью a4j)
Мой a4j Код кнопки команды выглядит так:
<a4j:commandButton action="MyClass.cancel_action"
onclick="checkIsPageChanged()"/>
Проблема здесь есть, при использовании с помощью a4j:commandButton
, я не могу назвать промежуточную яваскрипта функцию (функцию, которая проверяет, является ли пользователь обновил любое окно подтверждения значения и отображает), а затем отправить запрос с помощью Ajax. Я посмотрел на код, сгенерированный JSF и код, как (не точно, но syntact)
<input type="button"
onclick="checkIsPageChanged();AJAX.submit('')/>
Дело в том, когда я нажимаю на кнопку, он звонит только checkIsPageChanged()
и не вызывая AJAX.submit()
.
Любое обходное решение для этого поможет мне.
Заранее спасибо.
Ваш код работает, но следует уточнить, что возврат 'true' также не отправит запрос. См. Https://community.jboss.org/thread/3755?start=0&tstart=0&_sscc=t Фактически, 'onclick ="! IsPageChanged() "' будет _not_ работать. –