event Liste der<p: ajax>-Ereignisse




jsf ajax request example (4)

Leider sind Ajax-Ereignisse schlecht dokumentiert und ich habe keine umfassende Liste gefunden. Zum Beispiel listet das Benutzerhandbuch Version 3.5 das Ereignis itemChange für p:autoComplete , vergisst jedoch, das Änderungsereignis zu erwähnen.

Wenn Sie herausfinden möchten, welche Ereignisse unterstützt werden:

  1. Laden und entpacken Sie das Quell-Quell-jar
  2. Suchen Sie die JavaScript-Datei, in der Ihre Komponente definiert ist (z. B. sind die meisten Formularkomponenten wie SelectOneMenu in forms.js definiert)
  3. Suchen Sie nach this.cfg.behaviors Referenzen

Dieser Abschnitt ist beispielsweise für das Starten des toggleSelect- Ereignisses in der SelectCheckboxMenu Komponente verantwortlich:

fireToggleSelectEvent: function(checked) {
    if(this.cfg.behaviors) {
        var toggleSelectBehavior = this.cfg.behaviors['toggleSelect'];

        if(toggleSelectBehavior) {
            var ext = {
                params: [{name: this.id + '_checked', value: checked}]
            }
        }

        toggleSelectBehavior.call(this, null, ext);
    }
},

Ich habe das Internet durchsucht und kann keine Liste der <p:ajax> finden. Kann jemand eine vollständige Liste der Ereignisse für das <p:ajax> -Tag bereitstellen?

Ich bin besonders interessiert, ob es ein onblur Event oder ähnliches gibt.


Answer #1

Unter "JavaScript HTML DOM Events" finden Sie eine allgemeine Übersicht über die Ereignisse:

http://www.w3schools.com/jsref/dom_obj_event.asp

PrimeFaces basiert auf jQuery, daher ist hier die jQuery-Dokumentation "Events":

http://api.jquery.com/category/events/

http://api.jquery.com/category/events/form-events/

http://api.jquery.com/category/events/keyboard-events/

http://api.jquery.com/category/events/mouse-events/

http://api.jquery.com/category/events/browser-events/

Im Folgenden habe ich einige der häufigsten Ereignisse mit Kommentaren zu ihrer Verwendung aufgelistet (aus der jQuery-Dokumentation).

Mausereignisse

(Jedes HTML-Element kann diese Ereignisse empfangen.)

click

dblclick

mousedown

mousemove

mouseover

mouseout

mouseup

Tastatur Ereignisse

(Diese Ereignisse können an jedes Element angehängt werden, aber das Ereignis wird nur an das Element gesendet, das den Fokus hat. Fokussierbare Elemente können zwischen Browsern variieren, aber Formularelemente können immer den Fokus erhalten, so dass sie für diese Ereignistypen geeignet sind.)

keydown

keypress

keyup

Formularereignisse

blur (In neueren Browsern wurde die Domäne des Ereignisses um alle Elementtypen erweitert.)

change (Dieses Ereignis ist auf <input> -Elemente, <textarea> -Boxen und <select> -Elemente beschränkt.)

focus (Dieses Ereignis ist implizit auf eine begrenzte Menge von Elementen anwendbar, wie <a href> Formularelemente ( <input> , <select> , usw.) und Links ( <a href> ). In neueren Browserversionen kann das Ereignis auf erweitert werden Schließen Sie alle Elementtypen ein, indem Sie die Eigenschaft " tabindex" des Elements explizit festlegen . Ein Element kann den Fokus über Tastaturbefehle wie die Tab- Taste oder durch Mausklicks auf das Element erhalten.)

select (Dieses Ereignis ist auf <input type="text"> Felder und <textarea> Boxen beschränkt.)

submit (Es kann nur an <form> -Elemente angehängt werden.)


Answer #2

Ich habe die Liste im Debug-Modus; Zuerst sah ich den Punkt, an dem der Fehler ausgelöst wurde

javax.faces.view.facelets.TagException: /showcase/partial_submit.xhtml @ 26,36 Ereignis: geändert wird nicht unterstützt. org.primefaces.component.behavior.ajax.AjaxBehaviorHandler.applyAttachedObject (AjaxBehaviorHandler.java:179) org.primefaces.component.behavior.ajax.AjaxBehaviorHandler.apply (AjaxBehaviorHandler.java:157)

und dann debuggte ich AjaxBehaviorHandler

Wenn Sie also die richtige Liste unterstützter Ereignisse ermitteln möchten, können Sie einen Fehler generieren (indem Sie einen Ereignisnamen verwenden, der falsch ist) und auf diese Weise vorgehen


Answer #3

Sie können im PrimeFaces-Benutzerhandbuch nach "Ajax Behaviour Events" suchen, und Sie finden viele davon für alle unterstützten Komponenten. Das ist es auch, was PrimeFaces anführt, das Optimus Prime in der entsprechenden Frage im PrimeFaces Forum <p:ajax> Event List vorschlägt ?

Es gibt kein onblur Ereignis, das ist der HTML-Attributname, aber es gibt ein blur Ereignis. Es ist nur ohne das Präfix "on" wie der Name des HTML-Attributs. Sie können auch alle "on *" - Attribute der Tag-Dokumentation der betreffenden Komponente betrachten, um zu sehen, welche alle verfügbar sind, zB <p:inputText> .





primefaces