2011-01-07 8 views
0

Ich habe eine mit einem Textfeld und die modalPanel übermittelt.einfache Textfeld-Validierung in <Rich: ModalPanel> mit JavaScript

Ein Klick auf die Schaltfläche, ich möchte überprüfen, ob das Textfeld durch eine JavaScript-Funktion gefüllt wurde.

Irgendwelche Vorschläge .. ?? Hier

ist der Code: Für die 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> 

Code für die JavaScript-Funktion ---

Funktion validateDiskPanel() {var obj1 = document.getElementById (“ theForm: diskPanel_diskName "); var obj2 = document.getElementById ("theForm: diskPanel_diskSize"); if (obj1 == "") {alert ("Bitte geben Sie den Laufwerksnamen an"); Richfaces.showModalPanel ('diskPanel'); falsch zurückgeben; } true zurückgeben; }

Antwort

0

Verwenden Sie <rich:ajaxValidator>. Hier ist die example.

Wenn Sie die JavaScript-Validierung nicht verwenden möchten, verwenden Sie nicht <rich:componentControl>, da sich das Panel beim erneuten Laden der Seite für die erfolgreiche Übermittlung ausblenden lässt.

+0

Danke niksvp! Entfernen des funktioniert .. – Swapnil

1

Der einfachere Weg dazu ist die Verwendung der required Prop. und eine h:message oder rich:message (oder h: messages/rich: Nachrichten für globale Nachrichten) auf Ihrer Textbox.

Beispiel:

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

Mehr especific Beispiel here.

Wenn Sie nicht benötigt werden, überprüfen Optionen unter Ajax Validatoren Registerkarte auf der Livedemo-Website, wie reich: ajaxValidator wie @niksvp sagte.