Отмена запроса Ajax, если в диалоговом окне подтверждения указано «Отмена» - PullRequest
1 голос
/ 19 июня 2011

Я хотел бы иметь компонент <f:ajax>, который отображал бы диалоговое окно подтверждения, а затем делал бы тег action, если был выбран OK, или прерывался, если был выбран Cancel. Я думал, что это будет работать, но это не так (часть Ajax запускается независимо от того, что я выбрал в подтверждении):

<f:ajax render="some_div">
<h:commandButton value="A Hazardous Button!"
  onclick="show_confirm()" action="#{bean.doSomething}" />
</f:ajax>

-

function show_confirm()
{
    var r=confirm("Are you sure you want to do this? This is totally hazardous!");
    if (r==true)
    {
      return true;
    }
    else
    {
      return false;
    }
}

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

Ответы [ 2 ]

3 голосов
/ 19 июня 2011

Во-первых, вам нужно добавить ключевое слово return в обработчик onclick ... попробуйте изменить onclick="show_confirm()" на onclick="return show_confirm()"

, во-вторых, вы можете упростить свою функцию до:

function show_confirm()
{
    return confirm("Are you sure you want to do this? This is totally hazardous!");
}
1 голос
/ 22 ноября 2012

Для JSF AJAX вы можете сделать следующим образом.

<script>
function show_confirm()
{
  return confirm("Are you sure you want to do this? This is totally hazardous!");
}
</script>

<h:commandButton value="A Hazardous Button!" onclick="return show_confirm()">
 <f:ajax listener=#{bean.doSomething}"/>
</h:commandButton>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...