【问题标题】:Ajax true doesn't check validation of the inputAjax true 不检查输入的验证
【发布时间】:2014-03-16 11:32:16
【问题描述】:

如果我输入ajax="false",我的命令按钮会正确检查所需输入,但它不会触发 onstart 和 oncomplete。但是,当我输入 ajax="true" 时,如果验证成功,一切正常,但如果我没有输入有效输入,则不会触发任何内容。

 <p:commandButton   value="Extract" style="width: 12%;height: 100%" update="tableemails, :confirmPurchase, :confirmPurchaseTest, :mainform" id="extractbutton" widgetVar="ButtonExtract"
                                   actionListener="#{mailMB.searchEmails()}" ajax="false" 
                                   icon="ui-icon-disk" styleClass="ui-priority-primary" 
                                   onstart="blockUIWidget1.show();" oncomplete=" blockUIWidget1.hide(); freeMails();" />   

我该如何解决这个问题以使我的 Button 检查验证并正确触发 onstart 和 oncomplete???

【问题讨论】:

    标签: ajax validation jsf-2 primefaces


    【解决方案1】:

    将按钮定义为 ajax="false" 不会为您提供一些只能通过 ajax 请求获得的功能(即 onstart、oncomplete、update)。

    我将假设通过“正确检查所需输入”,您试图说显示的消息详细说明了验证问题。如果是这种情况,请检查您的消息组件是否正在自动更新,如下例所示:

    <p:messages id="messages" showDetail="true" autoUpdate="true" closable="true" /> 
    

    如果不是,告诉消息自动更新或将其 id 包含在您的按钮更新属性中:

    <p:commandButton   value="Extract" style="width: 12%;height: 100%" update="messages, tableemails, :confirmPurchase, :confirmPurchaseTest, :mainform" id="extractbutton" widgetVar="ButtonExtract"
                       actionListener="#{mailMB.searchEmails()}"  
                       icon="ui-icon-disk" styleClass="ui-priority-primary" 
                       onstart="blockUIWidget1.show();" oncomplete=" blockUIWidget1.hide(); freeMails();" />   
    

    【讨论】:

    • 根据您的建议,我会收到验证消息,但即使验证失败,我也会收到 oncomplete 显示的对话框,这不是我想要的。
    • 您可以通过检查 args.validationFailed 来完成。考虑像@​​987654324@ 这样的东西。看看这个stackoverflow.com/questions/9195756/…
    • With oncomplete="if (#{not facesContext.validationFailed}) freeMails.show();"即使验证失败,我也会显示对话框是什么原因
    • 我仍然认为你应该只使用这部分:if (!args.validationFailed) {freeMails();}
    • 它适用于第一次提交,但如果输入有效输入并再次提交它会清除表单并且不会调用动作监听器中的方法
    猜你喜欢
    • 2011-04-12
    • 2013-07-23
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多