我想要一个显示确认对话框的<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;
}
}
知道为什么吗?
答案 0 :(得分:3)
首先,您需要将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 :(得分:1)
对于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>