#1 13. April 2012 <h:form> attribut ändern Hey Leute, ich bin derzeit n bisschen mit JSF (genauer: Primefaces) und xHTML am rumprobieren. Jetzt habe ich ein Problem. Und zwar wird bei mir beim klick auf nen Button ein Javascript ausgeführt und ich möchte, dass von diesem Javascript aus eine <h:form> sichtbar gemacht wird. Ich hoffe es ist verständlich was ich überhaupt möchte Hier die Code-Schnipsel: Hier ist im else-teil der wichtige part. Dieses "document.get...." war mein kläglicher Versuch die Form sichtbar zu machen. Code: <script type="text/javascript"> function handleLoginRequest(xhr, status, args) { if(args.validationFailed || !args.loggedIn) { jQuery('#loginDialog').effect("shake", { times:3 }, 100); } else { document.getElementById(nav_form).setAttribute(rendered, true); jQuery('#loginDialog').hide("fade", 800); } } </script> Hier die Form selbst (rendered=false damits eben nicht direkt angezeigt wird): Code: <h:form id="nav_form" target="top" rendered="false" > <!-- irgendwelcher Content --> </h:form> Besten Dank schonmal vorab! Grüße, exe + Multi-Zitat Zitieren
#2 13. April 2012 AW: <h:form> attribut ändern du hast die anführungszeichen vergessen. Code: ... .setAttribute("rendered", true); + Multi-Zitat Zitieren
#3 13. April 2012 AW: <h:form> attribut ändern Damit klappt es leider auch nicht :/ Könnte ich sonst irgendwas vergessen haben? Wenn ihr noch Infos braucht, sagts ruhig. Code: ... .setAttribute(rendered, "true"); hab ich auch probiert klappt nur leider auch nicht :S + Multi-Zitat Zitieren
#4 13. April 2012 AW: <h:form> attribut ändern HTML: document.getElementById("nav_form").setAttribute("rendered", true); wie murdoc schon sagte // edit und wenn du schon mit jQuery arbeitest, warum nicht so? HTML: jQuery('#nav_form").setAttribute("rendered", true); + Multi-Zitat Zitieren
#5 13. April 2012 AW: <h:form> attribut ändern Also wenn jQuery dann aber so: HTML: jQuery('#nav_form").attr("rendered", true); + Multi-Zitat Zitieren
#6 13. April 2012 AW: <h:form> attribut ändern Muss es nicht HTML: jQuery('#nav_form").attr("rendered", "true"); ? + Multi-Zitat Zitieren
#7 13. April 2012 AW: <h:form> attribut ändern jetzt mal rein aus interesse. <h:form> ist doch jsf code, der in html umgewandelt und ausgegeben wird. Code: <h:form></h:form> wird zu: Code: <form action="..." ...></form> kann man da überhaupt noch auf attribute zugreifen die nur serverseitig verfügbar sind? ich denk mal eher nicht + Multi-Zitat Zitieren
#8 13. April 2012 AW: <h:form> attribut ändern Aber selbst als HTML angekommen müsste jQuery auf den nodes arbeiten können: $('#nav_form').attr('data-rendered', 'rendered') $('#nav_form').prop('rendered', true) PS. "rendered" ist doch eher ein property, oder? Und W3C schreibt doch eh was zwecks Attributen und Props? Beispiel: checked=true ist falsch als attribut (darum ja checked="checked"). im dom eines elements kannst aber boolsche werte schreiben Oder hab ich was missverstanden? + Multi-Zitat Zitieren
#9 13. April 2012 AW: <h:form> attribut ändern das ding ist eher, dass das formular im html-quelltext nie ein attribut namens "rendered" hat, weil jsf ja serverseitig verarbeitet wird. wenn jquery ins spiel kommt isses schon zu spät ps: bei booleschen attributen bedeutet vorhanden = true, nicht vorhanden = false. -> checked="false" -> true, da vorhanden (wert egal). wenn die attribute dann im DOM verfügbar sind bestimmten `true` oder `false` den wert. wild ins blaue geraten sollte folgendes funktionieren: Code: jQuery('#nav_form').show(); oder Code: jQuery('#nav_form').css({ visibility: 'visible', display: 'block' }); + Multi-Zitat Zitieren
#10 14. April 2012 AW: <h:form> attribut ändern Danke Leute ich werds mal ausprobieren. Hab am Wochenende noch ne Menge um die Ohren, deswegen meld ich mich erst am Montag wieder. Grüße, exe + Multi-Zitat Zitieren
#11 16. April 2012 AW: <h:form> attribut ändern Okay, davon hat leider nichts funktioniert.. Hab alle Vorschläge durchprobiert und keiner hat funktioniert. Ich versuchs mal weiter und melde mich dann zwecks Erfolg oder Misserfolg. Grüße, exe + Multi-Zitat Zitieren