Javascript html form vraag

Pagina: 1
Acties:

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 23:56

aex351

I am the one

Topicstarter
Waarom wil de onderstaande code met "this." niet werken. Een oplossing zou kunnen zijn om het zonder "this." aan te pakken en de DOM structuur erin te verwerken alleen omdat ik dit een mooiere oplossing vind zoek ik een oplossing voor mijn probleem.

Onderstaande code moet dus de waarde uit de select redirecten.

HTML:
1
2
3
4
5
6
7
8
9
                    <form action="">
                        <label for="weergave">
                            Beeld :
                            <select id="weergave" name="weergave" onchange="location.href='./weergave='+this.[weergave.selectedIndex].value+'';return false;">
                                <option value="b" selected="selected" > B </option>
                                <option value="a" > A </option>
                            </select>
                        </label>
                    </form>

< dit stukje webruimte is te huur >


  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 23:49

Onbekend

...

Je hebt eerst een dubbele quote om de tekst te beginnen, en daarna een enkele quote om de volgende tekst mee te beginnen. Dat is ok, maar nu die derde quote:
Je browser denkt dat je de vorige enkele quote weer wilt sluiten!

Speel ook Balls Connect en Repeat


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

crisp

Devver

Pixelated

code:
1
onchange="window.location.href='./weergave='+this.options[this.selectedIndex].value"

Intentionally left blank


  • Osiris
  • Registratie: Januari 2000
  • Niet online
De Firefox JavaScript-console zegt:

Fout missing name after . operator
Bronbestand bla.html
Regel 1, Kolom 56
Broncode
location.href='./weergave='+this.[weergave.selectedIndex].value+'';return false;


Kweenie wat je denkt te bereiken met die [ .. ] maar volgens mij kan dat zomaar niet op die plek in JavaScript.

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 23:56

aex351

I am the one

Topicstarter
crisp schreef op zaterdag 22 juli 2006 @ 16:41:
code:
1
onchange="window.location.href='./weergave='+this.options[this.selectedIndex].value"
Bedankt voor de oplossing.

< dit stukje webruimte is te huur >


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

crisp

Devver

Pixelated

aex351 schreef op zaterdag 22 juli 2006 @ 16:51:
[...]

Bedankt voor de oplossing.
snap je nou ook wat je zelf fout deed?

voor de volledigheid zal ik het nog even uitleggen:
- ten eerste moet je natuurlijk de options-collection van je select ('this') aanspreken, en daarvan de option die hoort bij de selectedIndex van je select (nogmaals 'this')
- ten tweede verwijst 'weergave.selectedIndex' nergens naar - enkel IE stopt elementen met een ID in de global namespace (bah), maar aangezien je toch in de scope van je select-element zit kan je hier dus ook gewoon 'this' gebruiken (zie ook hierboven)
- je kan beter volledig aangeven dat location een property is van window; stel dat ik een custom attribuut 'location' aan de select zou toekennen dan zal enkel 'location' daarnaar verwijzen (scope)
- je kent al een string toe dus expliciet casten door +'' te doen is overbodig
- de 'return false' is ook overbodig aangezien een select geen default action heeft

dat was het wel zo'n beetje ;)

Intentionally left blank

Pagina: 1