AJAX-запрос JSF не запускается в сочетании с проверкой на стороне клиента JS - PullRequest
2 голосов
/ 07 декабря 2011

Я использую JSF 2.0 и простые символы.У меня есть одна страница с несколькими входами внутри формы и кнопка, которая добавляет новую запись в таблицу, используя ajax.Все работает нормальноЗатем я добавил проверку на стороне клиента с использованием JavaScript.Это код кнопки команды:

<p:commandButton value="Add" actionListener="#{reqAbsences.addPreLeaveDemand}"
                 onclick="return validateNewAbs()"
                 update="tableForm inputForm errorForm" />

Если проверка не удалась, она работает, как ожидалось, и запись не добавляется ни в таблицу.Проблема возникает при прохождении проверки: запись добавляется, но страница перезагружается (ajax не работает).если я удаляю onclick="return validateNewAbs()" ajax снова работает.

Есть идеи, почему это происходит?

1 Ответ

2 голосов
/ 07 декабря 2011

Вы переопределяете стандартное событие ajax click, немедленно возвращая true. Скорее заставить его вернуться только на false.

onclick="if (!validateNewAbs()) return false;"

Однако лучше просто выполнить проверку на стороне сервера, используя встроенные / настраиваемые средства проверки JSF. Таким образом, вам не нужно дублировать валидацию в обе стороны, и валидация все равно будет работать с отключенным JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...