Hei,
Yritän javascriptillä piilottaa yhtä diviä, mutta se ei tahdo onnistua millään.
Omasta mielestä kaikki on kuten pitää, mutta ei toimi.
Kun painan hide-napista, niin se tulostaa: testi, mutta mitään muuta ei tapahdu. En saa virheitä FF:sta.
Alla lyhennetty html.
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<head>
<title>LOMAKE</title>
<link rel="stylesheet" href="style/style.css">
<script language=javascript type='text/javascript'>
function hideDiv() {
if (document.getElementById) {
document.getElementById('hideShow').style.visibility = 'hidden';
alert("testi");
}
}
function showDiv() {
if (document.getElementById) {
document.getElementById('hideShow').style.visibility = 'visible';
}
}
</script>
</head>
<body onload="javascript:hideDiv()">
<form>
<table>
...
</table>
<table>
<div id="sct">
</div>
</table>
<div id='hideShow'>
<table width="508" align="center">
<tr>
<td>Nimi</td>
<td><input type="text" name="name" size="35"></td>
</tr>
<tr>
<td>Nimi</td>
<td><input type="text" name="name" size="35"></td>
</tr>
</table>
</div>
<table>
</table>
</form>
<button onclick="javascript:hideDiv()">Hide</button>
<button onclick="javascript:showDiv()">Show</button>
</body>
</html>Olisiko antaa vinkkiä?
Eikö se ole display eikä visibility? En ole JS:ää koodannut, mutta netistä löytyi tämmöinen esimerkki.
Kokeilin Jaska sitäkin, mutta ei toiminut.
EDIT: Jahas, tällä sain toimimaan, eli oli tosiaan display ;)
document.getElementById('hideShow').style.display = 'none';
document.getElementById('hideShow').style.display = 'inline';pitäiskös displayn olla "block", kun on divi kyseessä, vai onko tuo asetettu css:llä oletukseksi olemaan "inline"?
Kannattaa muuten harkita jQueryn opettelemista. Sillä tuo sama hoituisi näin:
$("#hideShow").hide(); // piilottaa divin
$("#hideShow").show(); // näyttää divinToisaalta. Jos jQueryä ei tarvitse muuhun, voi sen käyttäminen olla aika turhaa tässä tapauksessa.
Itse taas olen sen verran laiska, että liitän jQueryn melkein mihin tahansa webiprojektiin.
mrkebab kirjoitti:
Kun painan hide-napista, niin se tulostaa: testi, mutta mitään muuta ei tapahdu. En saa virheitä FF:sta.
Alla lyhennetty html.
Juuri tuolla koodilla (copypaste) testattuna toimii ongelmitta Firefox 14:ssä. Mahdoitkohan lyhentää pois koodista sen kohdan, joka aiheuttaa ongelman, vai onkohan sinulla jokin Firefoxin erikoinen versio?
Vihje: Koodin lyhentämisen jälkeen kannattaa tarkistaa, onko onnistuttu eristämään ongelma (eli ilmeneekö se vielä lyhennetyssä koodissa).
Sopivin keino on yleensä visibility-ominaisuuden arvon muuttaminen, jota koodissasi on käytetty. Silloin näkyvistä poistetun elementin paikalla on tyhjä tila. Sen sijaan display-ominaisuuden arvon muuttaminen aiheuttaa koko sivun uudelleenmuotoilun (redraw).
Aihe on jo aika vanha, joten et voi enää vastata siihen.