如何有条件地显示Javascript alert(),阻止页面提交,直到用户单击";好吧;?
我有这样一个命令按钮:如何有条件地显示Javascript alert(),阻止页面提交,直到用户单击";好吧;?,javascript,ajax,jsf,primefaces,Javascript,Ajax,Jsf,Primefaces,我有这样一个命令按钮: <p:commandButton value="Save" actionListener="#{bean.checkDetails}" action="#{bean.save}" /> RequestContext context = RequestContext.getCurrentInstance(); context.execute("alert('Details are not Complete.')"); 我的问题是我没有看到alert()对话框
<p:commandButton value="Save" actionListener="#{bean.checkDetails}" action="#{bean.save}" />
RequestContext context = RequestContext.getCurrentInstance();
context.execute("alert('Details are not Complete.')");
我的问题是我没有看到alert()对话框,无论checkDetails()方法的状态如何,都会调用bean.save
我是不是走错了路?到目前为止,我已经在这上面花了三个小时,我完全被卡住了。如果删除action方法,alert()会很好地弹出
如果您有任何意见,我们将不胜感激
My checkDetails()方法检查页面上的某些字段,如果这些字段没有填写
正如BalusC所说,通过向这些字段添加required=“true”
,可以很容易地解决这个问题,而无需为此编写Java
如果您想将其与“旧scool”alert()
混用,可以使用validationFailed
回调参数:
<h:form>
<p:inputText required="true" />
<p:commandButton value="submit" oncomplete="handleValidation(xhr, status, args)" />
</h:form>
<script type="text/javascript">
function handleValidation(xhr, status, args)
{
if(args.validationFailed)
{
alert('Details are not Complete.');
}
}
</script>
功能手柄(xhr、状态、参数)
{
if(args.validationFailed)
{
警报(“详细信息不完整”);
}
}
在提交笨拙而陈旧的文件之前,可能需要防止默认值或返回false。为什么不使用JSF(甚至PrimeFaces)内置的验证和消息传递工具呢?在验证失败的情况下,操作方法甚至不会被命中,模型值也不会被更新。JSF提供的最简单的验证就是将required=“true”
放入适当的输入组件中。使用PrimeFaces
,您将通过ajax获得即时验证消息。另请参见此展示示例:感谢BalusC,但我正在以类似的方式重新创建应用程序。事实上,我已经对许多字段使用了required=“true”
。我只需要显示这个Javascript alert(),我只想阻止action方法的执行,而不是完全停止它。只要用户在alert()上按OK,操作方法就会执行。我需要更多的操作来处理页面上的值,而不仅仅是简单的required=“true”
。我想在支持bean中运行一个能够弹出JS alert()的方法,然后当该方法完成时,我想执行action方法。@peetss也许您应该指定要对字段执行的操作。;-)