Toon posts:

Javascript form objects aanmaken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een formulier waarbij het van te voren nog niet bekend is hoeveel bestand velden ik nodig heb. Aan de hand van het ingevulde formulier wordt het aantal benodigde velden bepaald door javascript. Ik wil dan dat javascript de formvelden aanmaakt, een waarde geeft en verzend.
Ik weet wel hoe je aan een bestaand formveld een waarde geeft en hoe je het verzend. Maar ik vraag me af of je javascript ook extra formvelden aan kan laten maken. Of moet ik eerst een heleboel extra hidden fields aan het formulier toevoegen.

BVD
EVD

Verwijderd

anders PHP ???

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16:50

Pelle

🚴‍♂️

Je kunt toch gewoon met document.write een hidden input schrijven? Als je dat in een loopje zet, dan kun je er zoveel maken als je zelf wilt.

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 16:52

RM-rf

1 2 3 4 5 7 6 8 9

code:
1
2
3
object = document.forms[0]
object.insertAdjacentHTML("BeforeEnd",
     "<input type=\"text\" name=\"blaat\" value=\"foo\">")

hiermee kun je dynamisch form-elementen toevoegen, anders gewoon met document.write()

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Topicstarter
Kan dit ook als de pagina volledig in de browser geladen is?

Ik wil namelijk dat het formulier ingevuld wordt. Als er op de verzendknop geklikt wordt, wordt er een javascript functie aangeroepen die de inhoud van het formulier bekijkt en zo nodig formfields toevoegt en een waarde geeft. Vervolgens wordt het formulier verzonden.

Dus kort gezegd, kan je met document.write formfields aan de pagina toevoegen nadat de pagina geladen is?

BVD
EVD

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 16:52

RM-rf

1 2 3 4 5 7 6 8 9

Op dinsdag 09 oktober 2001 23:04 schreef evd het volgende:
Kan dit ook als de pagina volledig in de browser geladen is?
juist insertAdjacentHTML dient gebruikt te worden als dynamische method, oftewel nadat de pagina al ingeladen is
Dus kort gezegd, kan je met document.write formfields aan de pagina toevoegen nadat de pagina geladen is?
niet met document.write(), dat kan je enkel gebruiken om tijdens het laden content weg te laten schrijven.

als je echter ook netscape4x geschikt wilt blijven, zou je een script moeten maken dat document.write()'s uitvoert in een layer, aangezien netscape niet echt dynamisch is, maar wel binnen een pagina het document-object van verschillende layers kan herschrijven moet je dan met document.write()'s werken.

mar dat is bij gebek aan dHTML-ondersteuning door netscape4x, als insertAdjacentHTML wel ondersteund wordt is dat te prefereren

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16:50

Pelle

🚴‍♂️

Is het een idee om één hidden input te maken, en daarin een waarde te gooien die je later in het script dat je form parsed, dit in key/value-pairs uit elkaar te trekken?
code:
1
input1=blaat***input2=melp***input3=nee

Bovenstaand stukje zou je dan in een vooraf gedefinieerde hidden input kunnen gooien, en vervolgens doe je in je script de waarde hiervan splitten op ***. Vervolgens split je die weer op = en je hebt een mooie associatieve array met key/value-pairs.
Is erg makkelijk te doen vanwege goeie browsercompatibility; vereist alleen wel wat script-ervaring.

Verwijderd

Topicstarter
Van de split functie ben ik op de hoogte, maar die kan ik niet gebruiken. Ik wil namelijk file fields aanmaken, zodat de file's upgeload worden.
Ik ga het eens proberen met insertAdjacentHTML. Het kan even duren voordat ik het goed kan testen omdat mijn provider wat problemen heeft.

In ieder geval hartstikke bedankt.

MVG
EVD

Verwijderd

Topicstarter
Toch nog een vraag. Ik maak nu op de volgende wijze een file element aan:
object.insertAdjacentHTML("BeforeEnd", "<input type=\"file\" name="+ naam +" value=\"evd.jpg\">");

Als ik vervolgens de value op wil halen dmv:
alert(document.forms[0].naam.value)

Dan blijkt dat leeg te zijn.
Als ik echter via de knop bladeren een afbeelding toevoeg, dan komt er wel het pad van de afbeelding te staan.

Mijn vraag is: hoe kan ik door middel van Javascript een bestand instellen bij het file element?

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
code:
1
object.insertAdjacentHTML("BeforeEnd", "<input type=\"file\" name=\""+ naam +"\" value=\"evd.jpg\">");

:?

//edit
enneuh .. weet verder niet, maar moet je object niet ergens door vervangen?

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16:50

Pelle

🚴‍♂️

Hmm.. volgens mij heb ik ook ooit zoiets geprobeerd. (het uitlezen van de filenaam & locatie).
Ben er toen niet uitgekomen, omdat de <input type="file"> blijkbaar geen (of altijd een lege) value-propertie heeft.

Heeft wellicht iets te maken met veiligheidsoverwegingen; ik zou anders namelijk met behulp van javascript een <input type="file"> kunnen vullen met bijvoorbeeld windows-passwordfiles of andere gevoelige shit, en dit meteen kunnen submitten naar mijn servertje.
Denk dat je je een file dus alleen kunt laten uploaden wanneer de gebruiker zelf op het browse-knopje heeft gedrukt en een file heeft geselecteerd.

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16:50

Pelle

🚴‍♂️

Op woensdag 10 oktober 2001 14:07 schreef r0bert het volgende:
:?
Wat wil je hier nou mee zeggen?

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Pelle:
Wat wil je hier nou mee zeggen?
Dat ik het ook niet zeker weet, dat het dus maar gewoon een ideetje was ..

Je zou het kunnen vertalen met '(dit) misschien?' :)

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16:50

Pelle

🚴‍♂️

Op woensdag 10 oktober 2001 14:27 schreef r0bert het volgende:
Dat ik het ook niet zeker weet, dat het dus maar gewoon een ideetje was ..

Je zou het kunnen vertalen met '(dit) misschien?' :)
Ah, okee.. je had er iets in aangepast. Da haddiknie gezien, sorry :)

minor zeikpuntje: 't is dus wel wat makkelijker om even erbij aangeven wat je precies hebt aangepast ;)

Verwijderd

Topicstarter
dus jullie denken dat het niet kan?

Eerder is objec gedefineerd als document.forms[0]

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Pelle:
(..)
minor zeikpuntje: 't is dus wel wat makkelijker om even erbij aangeven wat je precies hebt aangepast ;)
minor antwoordje: staat 'rbij

Verwijderd

Topicstarter
Ik heb later nog even uitgelegd dat object al gedefineerd was. Sorry dat ik het er niet bij gezet heb.

Maar nog even voor de duidelijkheid:
Jullie denken allemaal dat het niet mogelijk is.

BVD
EVD

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16:50

Pelle

🚴‍♂️

Op woensdag 10 oktober 2001 23:59 schreef evd het volgende:
Maar nog even voor de duidelijkheid:
Jullie denken allemaal dat het niet mogelijk is.
Niet met een <input type="file"> in ieder geval, vanwege de security-redenen die ik hierboven al een keer genoemd heb. Het moet niet mogelijk zijn om met behulp van javascript zaken van de client automagisch naar een server te kunnen sturen, en vandaar dat je dus ook alleen maar iets kunt uploaden als je daar zelf toestemming voor hebt gegeven (door zelf die file te selecteren).

Verwijderd

Topicstarter
Oke, bedankt voor de uitleg. Op zich een goede reden om het te weigeren.

MVG
EVD
Pagina: 1