2010-11-24 10 views
1

Ist es möglich, das required Attribut einer JSF h:inputText Steuerung von JavaScript zu referenzieren? Dies ist eine Seite, die AJAX nicht verwenden kann, und ich möchte das Attribut required basierend auf dem Wert in einem anderen Textfeld festlegen.Referenz JSF Kontrolle Attribute über JavaScript

+0

Gefunden ein paar Artikel: http: // localhost: 8080/Anfrage-Formulare/Seiten/Überstunden/Überstunden-n.Seam und das: http://illegalargumenttexception.blogspot.com/2009/10/jsf-working- with-component-identifiers.html – Alex

+1

der erste Link muss ein Tippfehler sein. Es zeigt auf deinen localhost;). – CoolBeans

+1

Der zweite Link ist ziemlich gut. Danke fürs Teilen Alex. – CoolBeans

Antwort

3

Ich möchte das erforderliche Attribut basierend auf dem Wert in einem anderen Textfeld festlegen.

Dann sind Sie nur dass im required Attribut.

z. wenn Sie wollen es auf lassen abhängen, ob das andere Feld in oder nicht gefüllt ist:

<h:inputText value="#{bean.input1}" binding="#{input1}" /> 
<h:inputText value="#{bean.input2}" required="#{not empty input1.value}" /> 

Oder, wenn es hat stattdessen einen bestimmten Wert sein, z.B. "Foo".

Halten Sie es einfach.

+0

+1 Wie immer super BalusC! – CoolBeans

+0

Sehr schön, BalusC. Danke - genau was ich brauchte :) Einfach und elegant auch – Alex

+0

Gern geschehen. – BalusC

2

Sie können JSF-Attribute nicht über Javascript "zugreifen". Die Attribute befinden sich auf einer anderen Maschine, auf der das Javascript ausgeführt wird.

Ich denke, dass Sie das JSF schreiben können, um eingebettetes Javascript zu erzeugen, das von JSF Kontrollen abhängt. Aber ich vermute, dass Sie Ihre eigenen JSF-Steuerelemente erstellen und verwenden müssen, um dies zu ermöglichen.

(Ich bin von JSPs und JSTL verallgemeinern ... aber ich denke, dass die gleichen Grundsätze gelten.)

+0

Danke. Bitte beachten Sie meinen Kommentar oben. – Alex

1

Es ist nicht möglich, meines Wissens. Java Script wird auf der Clientseite ausgeführt, JSF-Steuerelemente sind serverseitig.

Ich denke jedoch, Sie können Ajax Push verwenden und den erforderlichen Attributwert basierend auf dem Wert, den jemand in einem Textfeld eingibt, binden. Sehen Sie sich ein Framework wie iceFaces an, das solche Funktionalität bietet. Aber das ist weg von Java Script.

Verwandte Themen