So wählen Sie JSF-Komponenten mit jQuery?
Bin ich versucht zu implementieren jQuery mit PrimeFaces und JSF-Komponenten, aber es funktioniert nicht richtig. Als ich versuchte, das gleiche zu tun mit HTML-tags;s einwandfrei funktioniert.
Hier ist der code mit HTML-tags, die funktioniert mit jQuery:
<input type="checkbox" id="check2"></input>
<h:outputText value="Check the box, if your permanent address is as same as current address."></h:outputText>
<h:message for="checkbox" style="color:red" />
mit
$("#check2").change(function() {
if ($("#check2").is(":checked")) {
$("#p2").hide();
} else {
$("#p2").show();
}
});
Hier ist der code mit PrimeFaces/JSF, das funktioniert nicht mit jQuery:
<p:selectManyCheckbox >
<f:selectItem itemLabel="1" value="one" id="rad" ></f:selectItem>
</p:selectManyCheckbox>
mit
$("#rad").change(function() {
if ($("#rad:checked").val() == "one") {
$("#p2").hide();
} else {
$("#p2").show();
}
});
InformationsquelleAutor Karthikeyan | 2011-10-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie erkennen, dass sich jQuery arbeiten mit dem HTML-DOM-Baum in der client-Seite. jQuery funktioniert nicht direkt auf JSF-Komponenten, wie Sie geschrieben haben in der JSF-source-code, aber jQuery arbeitet direkt mit der HTML-DOM-Baum, die generiert durch diese JSF-Komponenten. Sie müssen öffnen Sie die Seite im webbrowser-und Rechtsklick und dann View Source. Sie werden sehen, dass JSF stellt die ID des erzeugten HTML-input-Elemente mit den IDs aller Eltern
NamingContainer
Komponenten (wie<h:form>
,<h:dataTable>
etc) mit:
als Standard-Trennzeichen. So zum Beispielwird am Ende in die erzeugten HTML-Code als
Müssen Sie Elemente auswählen, indem Sie genau, dass die ID statt. Die
:
ist jedoch ein Sonderzeichen in CSS-Bezeichnern darstellt, eine pseudo-Selektor. Wählen Sie ein element mit einem:
im ID über CSS-Selektoren in jQuery, müssen Sie entweder ersetzen Sie es durch einen umgekehrten Schrägstrich, oder verwenden Sie die[id=...]
Attribut-Selektor oder einfach eine altegetElementById()
:Wenn Sie sehen, eine automatisch generierte
j_idXXX
Teil im ID, woXXX
stellt eine inkrementelle Zahl, dann sind Sie muss geben die jeweilige Komponente eine Feste ID, weil die inkrementelle Zahl ist dynamisch und unterliegt Veränderungen je nach Komponente die physische position in der Struktur.Als alternative, können Sie auch einfach ein Klasse name:
endet in HTML als
so, dass Sie es als
Ermöglicht dies eine bessere Abstraktion und Wiederverwendbarkeit. Sicherlich ist diese Art von Elementen sind nicht einzigartige. Nur die wichtigsten layout-Elemente wie header, Menü, content und footer sind wirklich einzigartig, aber Sie sind wiederum in der Regel nicht in einem
NamingContainer
schon.Als wieder eine weitere alternative, könnten Sie einfach übergeben Sie die HTML-DOM-element selbst in der Funktion:
Siehe auch:
InformationsquelleAutor BalusC
Außerdem können Sie mithilfe der jQuery "- Attribut Enthält Selector" (hier ist die url http://api.jquery.com/attribute-contains-selector/)
Zum Beispiel, Wenn Sie eine
möchten Sie etwas über Ihr Objekt, können Sie es mit
ist und wenn Sie drucken möchten, dessen Wert Sie können dies tun,
Um zu wissen, die wirkliche html-tag des Elements Sie können immer Blick auf den echten html-element (in diesem Fall spinner übersetzt-Eingang) mit firebug oder ie-Entwickler tools oder Quelltext anzeigen,...
Daniel.
InformationsquelleAutor Daniel
Wenn Sie mit RichFaces kann man überprüfen
rich:jQuery
comonent. Es ermöglicht Ihnen die Angabe der server-Seite-id für die jQuery-Komponente. Zum Beispiel, Sie haben die Komponente mit dem angegebenen server-id, dann können Sie einen beliebigen jQuery-Verwandte Sachen, um in der folgenden Weise:Für mehr info, überprüfen Sie bitte doumentation.
Hoffe, es hilft.
InformationsquelleAutor nndru
suchen dies wird Ihnen helfen, wenn ich wählen Sie Erfahrung=ja, meine dialoguebox die id ist dlg3 ist popup.und wenn der Wert Keine ist, wird Sie nicht
InformationsquelleAutor umang naik