[JS] dynamische velden kopieren naar hidden velden.

Pagina: 1
Acties:

  • Tommel
  • Registratie: November 2000
  • Niet online
Ik heb onderstaand script die door een aantal formuliervelden loopt. In de pagina zit een WYSIWYG editor die een naam heeft die voor een gedeelte uit de naam van het doel veld bestaat.

b.v. hidden veldnaam is f_s_tekst_kort dan heet de editor Editor_f_s_tekst_kort, nu moet ik de waarde van de textarea dmv een functie van de editor kopieren naar een hidden field:

Dit kan met document.forms[0].f_s_tekst_kort.value = Editor_f_s_tekst_kort.getHTMLBody();
Dit werkt ok.

Nu wil ik dit dynamisch maken omdat de formuliervelden gegeneerd worden dmbv ASP en DB.
Ik loop dus door de velden maar moet nu de naam van het veld "plakken" voor de functie getHTMLBody(); Ik heb al vanalles geprobeerd maar krijg het niet werkend, onderstaande code werkt:
code:
1
2
3
4
5
6
7
for (var i = 0; i<document.forms[0].elements.length; i++) 
    {
    if ((document.forms[0].elements[i].name.indexOf('f_s_tekst') > -1)) {
        editorname = document.forms[0].elements[i].name;
        document.forms[0].elements[i].value = Editor_' + editorname + '.getHTMLBody();
        }
    }

op de volgende regel na:
code:
1
document.forms[0].elements[i].value = Editor_' + editorname + '.getHTMLBody();


Hoe krijg ik de naam van het veld in de aanroep van de functie getHTMLBody(); ?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 01-05 19:54

Bosmonster

*zucht*

code:
1
2
document.forms[0].elements[i].value = 
   eval ('Editor_' + editorname).getHTMLBody();


of

code:
1
2
document.forms[0].elements[i].value = 
   window['Editor_' + editorname].getHTMLBody();

[ Voor 42% gewijzigd door Bosmonster op 01-08-2005 10:10 ]


  • Tommel
  • Registratie: November 2000
  • Niet online
Heb deze gebruikt en het werkt!

code:
1
2
document.forms[0].elements[i].value = 
   window['Editor_' + editorname].getHTMLBody();


Bedankt!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:46

crisp

Devver

Pixelated

Elementen met een name zijn niet in elke browser te benaderen via de global namespace; eigenlijk alleen in IE door de backwards compatibility met het document.all model (global namespace pollution).
Dit lijkt mij logischer:
JavaScript:
1
document.forms['id_van_je_form'].elements['Editor_' + editorname].getHTMLBody();

Als het even kan probeer dan een referentie naar je formulier mee te geven middels het 'this' keyword; document.forms[0] is weinig flexibel - geef dan in elk geval een ID aan je form.

Intentionally left blank