Ik heb sinds kort een XSLT template dat zelf html formulieren gegeneerd op basis van een versimpelde versie van XForms. Nu wilt de klant dat hetm ogelijk is om bepaalde velden te verbergen of juist zichtbaar te maken afhankelijk van eerder gegeven antwoorden. Nu heb ik dit inmiddels aan de praat, alleen het enigste probleem is dat dit alleen werkt bij één vraag/antwoord combinatie. Oftewel je kan niet meerdere vragen zichtbaar maken of verbergen. Nu wordt er door XSLT een regel JavaScript gegeneerd en gekoppeld aan de onchange-event van de formulier veld. Dit doe ik als volgt:
Alleen dan voegt ie dus alleen updateFormField()-functie call in de onchange-event, als er meerdere velden afhankelijk zijn van de waarde van het veld waarde functie aanhangt... dan gaat het fout. Omdat het altijd de laatste functie-call pakt. Bestaat er een mogelijheid op dit op te sparen en dan op het eind pas het toe te voegen? Moet ik misschien werken met <xsl:param /> en de concat() functie?
XML:
1
2
3
| <xsl:attribute name="onchange"> XForm.updateFormField('<xsl:value-of select="@relevant" />', '<xsl:value-of select="xforms:extension/if:attribute[@name='value']" />', '<xsl:value-of select="@id" />'); </xsl:attribute> |
Alleen dan voegt ie dus alleen updateFormField()-functie call in de onchange-event, als er meerdere velden afhankelijk zijn van de waarde van het veld waarde functie aanhangt... dan gaat het fout. Omdat het altijd de laatste functie-call pakt. Bestaat er een mogelijheid op dit op te sparen en dan op het eind pas het toe te voegen? Moet ik misschien werken met <xsl:param /> en de concat() functie?
[ Voor 27% gewijzigd door alienfruit op 04-09-2005 00:05 ]