Hei,
Voisitteko kokeneempina kertoa, mitä vikaa alla olevassa scriptissä on? Firebug ei löytänyt, siitä mitään korjattavaa, mutta se jää pyörittämään selainta (Firefox 2.x) ja Ie seiskalla ei edes suostu suorittamaan.
<html> <head> <script type="text/javascript"> function valinta(m) { document.writeln(m + "<br>") } </script> </head> <body> <form> <select> <option onclick="valinta('11')">nimi1</option> <option onclick="valinta('22')">nimi2</option> <option onclick="valinta('33')">nimi3</option> </select> </form> </body> </html>
Mod. edit: kooditagit
Ja puhdas arvaus, mutta muistaakseni document.writeln() pistää rivinvaihdon perään. document.write() voisi olla parempi. Ja tuossa siis yrität tulostaa pelkästään tuon homman ikkunaan.. hmm..
En nyt tarkemmin jaksa kokeilla, mutta document.write():han kirjoittaa juuri siihen kohtaan, jossa se on, tässä tapauksessa siis tuonne headin sisälle, mikä ei varmaankaan oo se paikka, johon halusit kirjottaa.
Headin sisään kirjoittaminen taas tarkoittaa sitä, että tyhjä, valkoinen ruutu + tuo teksti :)
Joo, ei nätä auttavan, vaikka korjasin ton document.writen ja siirsin koko roskan pois headista.
Tässäpä ongelmasi ja ratkaisu noin suurin piirtein:
Suurin vika on se, että document.write
toimii vain kun dokumentti ei ole vielä valmis. Valmiiseen dokumenttiin voi tehdä paremmin muutoksia DOM-rajapinnan kautta. Yksinkertainen esimerkki koodisi pohjalta seuraa.
<html> <head> <script type="text/javascript"> function valinta(m) { paikka = document.getElementById("outputti"); teksti = paikka.textContent teksti += " " + m paikka.textContent = teksti } </script> </head> <body> <form> <select> <option onclick="valinta('11')">nimi1</option> <option onclick="valinta('22')">nimi2</option> <option onclick="valinta('33')">nimi3</option> </select> </form> <p id="outputti"> Tämä näkyy aluksi. Jatkoa seuraa: </p> </body> </html>
Lähteitä:
http://www.google.fi/search?q= javascript dom reference
Parempi tapa on joku hyvälaatuinen ja eri selaimilla testattu kirjasto:
http://mochikit.com/
Koodini antaa IE7:ssa turvavaroituksen, eikä minulla ole aavistustakaan miksi. Se ei myöskään toimi vaikka varoituksen ohittaa, mikä ehkä johtuu siitä, että käyttämäni funktiot ja tietueet ovat Mozillan JS-referenssistä...
Tämän takia kannattaa käyttää Mochikittiä (tms.). Se on testattu melkein kaiken sortin selaimilla jo valmiiksi.
Kpk (joo, ei ne varmaan Lynxillä)
Tämän pitäisi toimia myös IE:llä. Itselläni se ainakin toimi. Ilmeisesti IE:ssä ei toimi tuo onclick option-tagin sisällä.
<html> <head> <script type="text/javascript"> function valinta() { var lahde = document.getElementById("inputti"); var paikka = document.getElementById("outputti"); paikka.innerHTML = paikka.innerHTML + " " + lahde.options[lahde.selectedIndex].value; } </script> </head> <body> <form> <select onChange='javascript:valinta()' id="inputti"> <option value="11">nimi1</option> <option value="22">nimi2</option> <option value="33">nimi3</option> </select> </form> <p id="outputti"> Tämä näkyy aluksi. Jatkoa seuraa myös IE:llä: </p> </body> </html>
Toimii minulla IE7:ssa. Tosin on se omi(tui/nai)suus, että samaa valintaa ei voi peräkkäin toistaa, vaan eikös se ollut tuossa omassanikin? Eipä tuo ole merkityksellistä tällaisessa kokeiluohjelmassa.
Turvavalitusta se taas esitti. Saattaa johtua siitä, että säädin heti IE7:n tultua updaten kautta sitä käyttämään kaikista kovimpia turva-asetuksia. Nimimerkillä Vahingoista oppinut... :-)
Kiitoksia tästä versiosta Pöytälampulle.
Kiitos kaikille!
Jos löytyy vielä javascriptin aloittamiseen vinkkejä ym.. niin laittakaa tähän.
Aihe on jo aika vanha, joten et voi enää vastata siihen.