为什么 required= "true"禁用时不会失败验证= 指定"true"


<a4j:outputPanel id="tapalSectionSendToPanel" ajaxsingle="true">
    <h:inputText id="sendToId1"  value="#{MainBean.SectionBean.sendTo}" 
        class="createresizedTextbox" 
        required="true" requiredMessage="#{msg.labl_required}"
        disabled="true" />
 <h:message for="sendToId1" style="color:red" />
</a4j:outputPanel> 

我需要验证文本框的空验证,当我单击按钮而不在文本框中输入任何值时,应该显示必需。没有disabled="true"它工作正常。我的要求的替代方案是什么。

首先,requireddisabled 不能很好地结合在一起,因为根据 JSF 规范,它们是互斥的:

  • 必需:指示用户需要为此输入组件提供已提交值的标志。
  • 已禁用:指示此元素不得接收焦点或包含在后续提交中的标志。

就像我在评论中所说的那样,当用户尝试提交表单而不选择节点时,您可以只显示一条消息:

<h:inputText id="sendToId1"  value="#{MainBean.SectionBean.sendTo}" 
    styleClass="createresizedTextbox" required="true" readonly="true" />
<h:message for="sendToId1" value="#{msg.labl_required}" 
    rendered="#{facesContext.postback and facesContext.validationFailed}" />

作为替代方法,您可以在标记中的任何位置显示文本:

<h:outputText value="#{msg.labl_required}" 
    rendered="#{empty MainBean.SectionBean.sendTo}" />

disabled="true"禁用输入(因此在提交表单时会跳过输入(,如果您不希望用户在其中键入输入,请使用readonly="readonly"

相关内容

  • 没有找到相关文章

最新更新