[JS] set name van formulierveld

Pagina: 1
Acties:

  • RickyHeijnen
  • Registratie: Maart 2005
  • Laatst online: 30-04 09:02
Ik kan hier heel simpel over zijn, me code werkt niet hahah. Door middel van javascript wil ik een input-element toevoegen aan een formulier.

Dit is de code:
code:
1
2
3
4
var new_element = document.createElement( 'input' );
new_element.type = 'hidden';
new_element.name = 'upfile_'+ this.multi_selector.count;
source_element.parentNode.insertBefore( new_element, this );


Nu zet hij alleen de name van het veld niet. Als ik dit ertussen doe:
code:
1
alert(new_element.outerHTML);

krijg ik: <INPUT type=hidden>

Wat doe ik fout, of wat moet ik anders doen?? Het werkt overigens in IE7 en FF niet... voor zover heb ik het kunnen testen.

Alvast bedankt voor de hulp ;)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

In FF moet dat prima werken, wat niet werkt in FF is outerHTML - dat is IE proprietary.
Wat betreft het dynamisch toekennen van een name-attribuut aan een form-element; dat is een IE-bug. Ranzige workaround (die uiteraard enkel voor IE bedoelt is) is deze:
JavaScript:
1
var new_element = document.createElement( '<input name="upfile_' + this.multi_selector.count + '">' );

Intentionally left blank


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 27-11 10:50

_Thanatos_

Ja, en kaal

Misschien een rare ingeving, maar wat is de waarde van this.multi_selector.count? Als die null of undefined is, dan kun je die niet bij een string optellen, afaik.

日本!🎌


  • RickyHeijnen
  • Registratie: Maart 2005
  • Laatst online: 30-04 09:02
Nee die waarde is niet null of undefined. Als ik doe new_element.name = 'test'; werkt het ook niet. Maar ik zal die andere oplossing eens proberen.

  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 18:45
En wat gebeurt er wanneer je die name met setAttribute set ?

Was advocaat maar vindt het juridische nog steeds leuk


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

StevenK schreef op donderdag 28 december 2006 @ 08:54:
En wat gebeurt er wanneer je die name met setAttribute set ?
Dat maakt niet uit, set/getAttribute() is zo mogelijk nog buggier dan IE's eigen beperkingen mbt DOM-manipulatie.

Intentionally left blank


  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 18:45
Volgens 'Javascript The Complete Reference' (wel een iets ouder boek) is de name property van een input read-only.

Was advocaat maar vindt het juridische nog steeds leuk


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

StevenK schreef op zondag 31 december 2006 @ 08:08:
Volgens 'Javascript The Complete Reference' (wel een iets ouder boek) is de name property van een input read-only.
Dan heeft dat boek het fout, volgens de DOM level 1 reference is de name property niet readonly, in tegenstelling tot bijvoorbeel het type attribute.

Intentionally left blank


  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 18:45
crisp schreef op zondag 31 december 2006 @ 11:24:
[...]

Dan heeft dat boek het fout, volgens de DOM level 1 reference is de name property niet readonly, in tegenstelling tot bijvoorbeel het type attribute.
Je hebt gelijk, lijkt erop dat er ergens iemand nodeName & name door elkaar heeft gehaald.

Was advocaat maar vindt het juridische nog steeds leuk


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Of iemand die voorbij gaat aan het feit dat implementaties (in dit geval die van IE) niet altijd correct hoeven te zijn ;)

Intentionally left blank


  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 18:45
crisp schreef op zondag 31 december 2006 @ 11:39:
Of iemand die voorbij gaat aan het feit dat implementaties (in dit geval die van IE) niet altijd correct hoeven te zijn ;)
Maar 't betreffende boek is zeker niet specifiek op IE geschreven.

Was advocaat maar vindt het juridische nog steeds leuk

Pagina: 1