Toon posts:

numerieke veldnamen in Firefox

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb gezocht maar kan niet direct een antwoord vinden...

Klopt het dat in Firefox geen numerieke veldnamen gebruikt kunnen worden? Dus:

code:
1
2
3
4
5
6
7
<INPUT type="radio" name="1" value="1">
<INPUT type="radio" name="1" value="2">
<INPUT type="radio" name="1" value="3">

<INPUT type="radio" name="2" value="1">
<INPUT type="radio" name="2" value="2">
<INPUT type="radio" name="2" value="3">


Als ik een validatie script (javascript) voor deze form schrijf werkt het wel in IE en niet in Firefox. Pas ik de namen vervolgens aan naar f_1, f_2 dan is er niets aan de hand en werkt het in beide browsers goed.

Is dit een bug in Firefox of een slordige implementatie van W3C regels in IE?

  • HansMij
  • Registratie: Mei 2002
  • Laatst online: 05-05 23:40
Ik kan me voorstellen dat het een slordigheid is van IE
nummers zijn geen namen, maar eerder een id. Je kunt daarom je elementen ook een id geven.
<input type="radio" id=1>

met Javascript kun je die weer vinden met document.getElementById("1")

(kan wezen die die quotes uit de javascript moeten, maar dat weet ik niet zeker.

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 00:21

odysseus

Debian GNU/Linux Sid

In de specificatie staat dat een 'name' van het type 'CDATA' moet zijn. In de HTML-specificatie worden aan dat type weinig eisen gesteld - zie http://www.w3.org/TR/html4/types.html#type-cdata.

Overigens geldt voor een 'id' juist een ander type, namelijk 'NAME', met de volgende specificatie:
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
Voor zover ik kan zien zit Firefox dus fout in dit geval :).

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18:51

Creepy

Tactical Espionage Splatterer

* Creepy mompelt iets over sticky topics.. met name deze: HTML, CSS, JavaScript, Flash en Director topics *12-05* ;)

move -> W&G

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Vae Victis
  • Registratie: April 2001
  • Laatst online: 22:46

Vae Victis

Dark Lord of the Sith

odysseus schreef op vrijdag 17 juni 2005 @ 16:51:
In de specificatie staat dat een 'name' van het type 'CDATA' moet zijn. In de HTML-specificatie worden aan dat type weinig eisen gesteld - zie http://www.w3.org/TR/html4/types.html#type-cdata.

Overigens geldt voor een 'id' juist een ander type, namelijk 'NAME', met de volgende specificatie:
name ?
Voor zover ik kan zien zit Firefox dus fout in dit geval :).
Firefox zit goed ;)
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be f..

  • Civil
  • Registratie: Oktober 2002
  • Laatst online: 23:13
Nee bij een input veld is het attribuut name van het CDATA type. Zie ook de attributen lijst.
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be f..
Dit slaat dus op het SGML token type ID en NAME en niet op het attribuut name, wat theoretisch voor diverse html elementen een ander data type zou kunnen bevatten. In de specificatie is het alleen voor het meta element een ander data type.

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

crisp

Devver

Pixelated

Toch geven numerieke name's natuurlijk een probleem in de JS-DOM, mede ook doordat javascript loose-typed is. Immers is de elements-collection van een form een collection die ook dmv numerieke index benadert kan worden.
HTML:
1
2
3
4
5
6
<form action="#">
    <input type="text" name="1" value="foo">
    <input type="button" onclick="alert(this.form.elements[0].value)" value="bar1">
    <input type="button" onclick="alert(this.form.elements[1].value)" value="bar2">
    <input type="button" onclick="alert(this.form.elements['1'].value)" value="bar3">
</form>

Puur numerieke name-attributen zijn dus af te raden...

Intentionally left blank

Pagina: 1