[JS]var gebruiken in document.form.var.value

Pagina: 1
Acties:

  • degroot
  • Registratie: December 2003
  • Niet online
Ik zit met een klein javascript probleempje wat ik maar neit opgelost krijg.

Het Probleem
Ik heb een pagina , waarop een aantal formulieren staan.
Deze formulieren worden gegenereerd aan de hand van database gegevens die ik met PHP uit de database haal.
Een foreachloop maakt dan de formulieren aan.

Met javascript heb ik een functie , die een ander formulier zichtbaar maakt zodra de functie aangeroepen word.
Hiermee kunnen de met php gegeneerde formulieren bewerkt worden , de php waardes moeten dus hier in komen te staan.

nu krijgen mijn formulieren dus ook allemaal automatisch gegenereede namen die er zo uitzien
PHP:
1
<form name="resultFrom_<? echo $events[0];">


Nu wil ik in deze formulieren de waardes van de textvelden uitlezen.

Normaal doe ik dat altijd met dit
JavaScript:
1
document.EditForm.eventdate.value = document.form.textfield.value;

Dat werkt perfect , maar nu moet form variable zijn.
En dat krijg ik niet voor elkaar.

Geprobeerd
Gegoogled & geGoT , maar ik zal waarschijnlijk geen goede keywords gebruiken.
Ik weet namelijk niet hoe men dit stukje code noemt(dus.... :+ )
JavaScript:
1
document.resultForm_ + "arCounter" + .eventdate.value;

De volgende code's (daardoor dacht ik eigenlijk dat het geen syntax probleem is/was??)
JavaScript:
1
2
3
4
5
6
7
 function fillEditForm(arCounter)
 {  
      document.EditForm.eventdate.value = document.resultForm_ + "arCounter" + .eventdate.value;
      //of
      document.EditForm.eventdate.value = document.resultForm_ + arCounter + .eventdate.value;
      ShowForm(EditForm);
}

Maar zonder resultaat

Ik gebruik firefox(1.5).
Mijn Javascript console geeft niks anders weer dan
code:
1
fillEditForm is not defined

Waardoor ik ook weer niet goed weet waar ik het probleem moet zoeken
Hopelijk kunnen jullie mij ietswat opweg helpen

www.degroot-it.nl


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
het name attribute is vervangen door het id attribute

daarnaast is het beter om via document.getElementById('idvanjeform') je formulierobjectje op te halen

jou methode werkt waarschijnlijk wel als je er eval omheen zet...

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • killercow
  • Registratie: Maart 2000
  • Laatst online: 28-11 15:56

killercow

eth0

Id's gebruiken ipv namen

code:
1
var form=document.getElementById("resultForm_"+arCounter);

openkat.nl al gezien?


  • degroot
  • Registratie: December 2003
  • Niet online
killercow schreef op maandag 23 april 2007 @ 12:06:
Id's gebruiken ipv namen

code:
1
var form=document.getElementById("resultForm_"+arCounter);
Hmm , ik gebruik nu jullie oplossing.
Heb mijn textvelden nu zo genoemd
HTML:
1
2
3
4
<td><input type="hidden" id="eventdate_<?echo $arCounter;?>" value="<? echo $events[1];?>"></td>
        <td><input type="hidden" id="event_<?echo $arCounter;?>" value="<? echo $events[0];?>"></td>
        <td><input type="hidden" id="web_<?echo $arCounter;?>" value="<? echo $events[2];?>"></td>
        <td><input type="hidden" id="district_<?echo $arCounter;?>" value="<? echo $events[4];?>"></td>


Daarna is mijn javascript
[code=javascript]
var form = document.getElementById("event_"+arCounter);
document.EditForm.event.value = form;[/javascript]

Maar dan krijg ik in mijn textveld een vreemd resultaat namelijk:
code:
1
[object HTMLInputElement]


Heeft dit te maken met het feit dat ik de NAME atribuut in id heb veranderd?
Of is getElementByID niet goed?

www.degroot-it.nl


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 07:54

Janoz

Moderator Devschuur®

!litemod

Waar ben je mee bezig?? Je hebt het over forms, maar post nu code waarmee je input velden ophaalt.

Wat in het laatste stukje trouwens fout gaat is behoorlijk logisch. form is een verwijzing naar het input veld. Als je daarvan de waarde wilt hebben dan moet je natuurlijk de value property uitvragen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:10

TeeDee

CQB 241

JavaScript:
1
var form=document.getElementById("resultForm_"+arCounter).value

Je hebt nu een referentie naar het object. Als je daar nu de waarde (value) van wil hebben zal je de .value property moeten gebruiken.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • degroot
  • Registratie: December 2003
  • Niet online
TeeDee schreef op maandag 23 april 2007 @ 12:52:
Je hebt nu een referentie naar het object. Als je daar nu de waarde (value) van wil hebben zal je de .value property moeten gebruiken.
Beetje dom van mezelf ook 8)
Was dus inderdaad de value property die ik miste , nu leest hij wel alles netjes uit!
thnQ voor jullie hulp

www.degroot-it.nl


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

crisp

Devver

Pixelated

Een form met een ID wordt ook opgenomen in de forms collectie:
JavaScript:
1
2
3
var formId = 'foo';
var fieldName = 'bar';
document.forms[formId].elements[fieldName].value = 'hoi';

Om al je form-inputs nu ook ID's te geven naast een name is een beetje overdone, hoewel wel weer noodzakelijk als je gebruik maakt van <label>

Intentionally left blank

Pagina: 1