使用JavaScript </rich:modalpanel>在<rich:modalpanel>中进行简单的文本框验证

时间:2011-01-07 10:21:59

标签: javascript jsf richfaces

我有一个文本框,并提交了modalPanel。

单击该按钮,我想检查文本框是否已通过JavaScript函数填充。

任何建议...... ??

这是代码: 对于modalPanel -

<h:form id="theForm">
<rich:modalPanel id="diskPanel" width="350" height="250">
<f:facet name="header">
    <h:panelGroup>
        <h:outputText value="Create New Disk"></h:outputText>
    </h:panelGroup>
</f:facet>
<h:panelGrid columns="2" width="70%">
    <h:outputLabel value="Disk Name* :" />
    <h:inputText value="#{myform.newDiskName}" id="diskPanel_diskName"/>

    <h:commandButton value="Create-Attach" id="submit_disk" 
           onclick="return validateDiskPanel()"
      action="#{myform.cloudButtonActionRequest('newdisk')}">
    <rich:componentControl for="diskPanel" attachTo="submit_disk"
    operation="hide" event="onclick" />
    </h:commandButton>
</h:panelGrid>

</rich:modalPanel>
    </h:theForm>

JavaScript函数代码---

  function validateDiskPanel(){var obj1 = document.getElementById(“theForm:diskPanel_diskName”); var obj2 = document.getElementById(“theForm:diskPanel_diskSize”); if(obj1 ==“”){alert(“请提供磁盘名称”); Richfaces.showModalPanel( 'diskPanel');返回false; } return true; }

2 个答案:

答案 0 :(得分:1)

更简单的方法是使用required道具。以及文本框中的h:messagerich:message(或h:messages / rich:全局消息的消息)。

示例:

<h:inputText label="Job" id="box" required="true" value="#{bean.prop}"/>
<rich:message for="box"/>

更具体的例子here

如果您不想使用required,请检查livedemo站点的Ajax Validators选项卡下的选项,如rich:ajaxValidator,如@niksvp所述。

答案 1 :(得分:0)

使用<rich:ajaxValidator>。 这是example

否则,如果您严格使用javascript验证,请不要使用<rich:componentControl>,因为面板将在页面重新加载时隐藏以便成功提交。