2016-07-09 7 views
1

Meine jQuery-Funktion wird nie aufgerufen, wenn ich auf meine Absenden-Schaltfläche klicke.Konflikt zwischen jQuery und f: ajax

Nevetheless erkennt jQuery das Klicken, wenn ich die f entfernen: Ajax Linie bei h: command.

Wie kann ich es f funktioniert: Ajax und meine jQuery Funktion zusammen?

XHTML:

<h:form> 
    <!-- my inputs--> 
    <h:commandButton id="submit-button" type="button" value="Confirm" > 
     <f:param name="id" value="#{param.id}" /> 
     <f:ajax execute="@form" render="@none" /> 
    </h:commandButton> 
</h:form> 

Javascript:

jQuery(document).ready(function() { 
jQuery('input[id*="submit-button"]').click(function() { 
    console.log("button clicked"); 
}); }); 
+0

Schauen Sie in die gerenderte Antwort. Die ID der Schaltfläche "submit" sollte mit den IDs der jeweiligen übergeordneten Komponente vorangestellt werden, z. B. "form: submit-button" (es sei denn, 'prependId' ist mit '' auf' false 'gesetzt, was wiederum nicht empfohlen wird). – Tiny

+0

Ich habe es schon mit 'form: submit-button'-Syntax versucht. Wie gesagt, jQuery erkennt den Klick nur, wenn ich die Zeile "" lösche. Es sieht aus wie das Problem von Ajax ... –

+0

Warum verwenden Sie nicht 'onclick' Attribut des' ', um js Funktion aufzurufen? – whitesite

Antwort

0

ich würde dies als Kommentar schreiben, aber es ist zu lang, so schreibe ich es hier als Antwort.

Ich denke, Sie haben einen JS-Fehler vor diesem:

// prior this code you could have a JS Error  
jQuery(document).ready(function() { 
    jQuery('input[id*="submit-button"]').click(function() { 
     console.log("button clicked"); 
    }); 
}); 

so jeden JS-Code nach, dass JS-ERROR wird nicht funktionieren.

Mögliche Ursache könnte eine missConfiguration von Xhtml sein. Ich nehme an, dass Ihre JSF-Ajax-Aufrufe auch nicht funktionieren, dies passiert, wenn Sie <h:head></h:head> in Ihrem XHTML nicht enthalten.

<h:head></h:head> Das Tag muss enthalten sein, damit AJAX ordnungsgemäß funktioniert.

Was passiert in Ihrem Fall ist: Sie versuchen, eine Ajax-Anfrage zu machen, dies scheitert, weil JSF konnte nicht jsf.js zu Ihrem XHTML-Header laden, dies verursacht einen JavaScript-Fehler, und alles nach diesem Fehler gewonnen Ich arbeite nicht richtig.

Verwandte Themen