Avatar billede dmg Nybegynder
15. marts 2005 - 12:29 Der er 26 kommentarer og
3 løsninger

Skjule textfields. Det virker næsten

Hej experts.

Har fundet nedenstående eksempel.

<form name="hej">

<input type='radio' name='radio' onClick="document.getElementById('skjul').style.display='none';" checked>Skjul textbox
<input type='radio' name='radio' onClick="document.getElementById('skjul').style.display='block';">vis textbox
<table border='2'>

<tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t1">  </td></tr>
<tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t2"></td></tr>
<tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t3"></td></tr>

</table>
</form>

det virker fint hvis man sletter tabellen og ligger den i en div. det virker også hvis man laver alle <td>'erne i een <tr>. Men jeg kan ikke gøre det på hver enkel <tr> please help!!!
Avatar billede sherlock Nybegynder
15. marts 2005 - 12:46 #1
Det her er godt nok ikke pænt, men det giver dig sikkert en ide. Det vigtigste er, at du er nødt at tildele forskellige navne til dine TR'er for at kunne adressere dem hver for sig.

<form name="hej">

<input type='radio' name='radio' onClick="document.getElementById('skjul1').style.display='none';" checked>Skjul textbox
<input type='radio' name='radio' onClick="document.getElementById('skjul1').style.display='block';">vis textbox<br/>
<input type='radio' name='radio' onClick="document.getElementById('skjul2').style.display='none';" checked>Skjul textbox
<input type='radio' name='radio' onClick="document.getElementById('skjul2').style.display='block';">vis textbox<br/>
<input type='radio' name='radio' onClick="document.getElementById('skjul3').style.display='none';" checked>Skjul textbox
<input type='radio' name='radio' onClick="document.getElementById('skjul3').style.display='block';">vis textbox<br/>

<table border='2'>

<tr style="display:none" id='skjul1'><td><input type='text' name='txt' name="t1">  </td></tr>
<tr style="display:none" id='skjul2'><td><input type='text' name='txt' name="t2"></td></tr>
<tr style="display:none" id='skjul3'><td><input type='text' name='txt' name="t3"></td></tr>

</table>
</form>
Avatar billede skyggen2000 Nybegynder
15. marts 2005 - 12:57 #2
Du kan sagtens lave den på hver TR. Dine ID'er er bare ens, derfor skal man itere gennem dem.
Avatar billede skyggen2000 Nybegynder
15. marts 2005 - 12:58 #3
hehe, fik svaret samme tid:)
Avatar billede barklund Nybegynder
15. marts 2005 - 13:01 #4
Man kan da lave en getElementsById, mener jeg at huske - som giver en element-list nø?
Avatar billede barklund Nybegynder
15. marts 2005 - 13:02 #5
Eller er det getElementsByTag/name?
Avatar billede Slettet bruger
15. marts 2005 - 13:06 #6
Sherlocks svar kan også gøres pænere som han jo selv siger :)
Det kunne f.eks. omskrives til:

<SCRIPT language="JavaScript">
<!--
function ShowHide(x) {
    if(window.document.getElementById('skjul' + x).style.display == 'block') {
        window.document.getElementById('skjul' + x).style.display='none';
    } else {
        window.document.getElementById('skjul' + x).style.display='block';
    }
}

//-->
</SCRIPT>

<form name="hej">

<input type='radio' name='radio' onClick="ShowHide(1);">Skjul textbox / vis tekstbox <br>
<input type='radio' name='radio' onClick="ShowHide(2);">Skjul textbox / vis tekstbox <br>
<input type='radio' name='radio' onClick="ShowHide(3);">Skjul textbox / vis tekstbox <br>

<table border='0'>

<tr style="display:none" id='skjul1'><td><input type='text' name='txt' name="t1">  </td></tr>
<tr style="display:none" id='skjul2'><td><input type='text' name='txt' name="t2"></td></tr>
<tr style="display:none" id='skjul3'><td><input type='text' name='txt' name="t3"></td></tr>

</table>
</form>
Avatar billede skyggen2000 Nybegynder
15. marts 2005 - 13:11 #7
Med det her, tager den samtlige og viser. Det modsatte skal du gøre med Skjul, tag en parameter med i funktionen, så er den hjemme.

<form name="hej">

<input type='radio' name='radio' onClick="document.getElementById('skjul').style.display='none';" checked>Skjul textbox
<input type='radio' name='radio' onClick="showAll();">vis textbox
<table border='2' id="tableRow">

<tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t1">  </td></tr>
<tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t2"></td></tr>
<tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t3"></td></tr>

</table>
</form>

<script language="javascript">
    function showAll()
    {
        var tempArray = document.getElementById('tableRow').getElementsByTagName("TR");
       
        for (var i = 0; i < tempArray.length; i++)
        {
            if(tempArray[i])
                tempArray[i].style.display = "block";
        }
    }
</script>
Avatar billede barklund Nybegynder
15. marts 2005 - 13:15 #8
Nu spørger jeg lige om noget fjollet, men har man ikke en eller anden form for XPath-implementation direkte tilgængeligt i JavaScript?
Avatar billede skyggen2000 Nybegynder
15. marts 2005 - 13:26 #9
Har ikke se meget erfaring med XPath, men i stedet for elementByTagName kan man bruge

document.all.item("skjul"), det er lidt mere smidigt:)

Umiddelbart kan jeg ikke finde noget om det til J-Script...
Avatar billede dmg Nybegynder
15. marts 2005 - 13:32 #10
hej og tak for alle jeres svar. Har prøvet dem, men de virker jo ikke helt?

Alle de felter, som ligger i hver deres <tr> skal forsvinde når man trykker på en radioknap og frem igen når der trykkes på en anden knap. Jeg overvejer lidt at skrotte tabeller og lave det i divs? Er der ikke en løsning?
Avatar billede skyggen2000 Nybegynder
15. marts 2005 - 13:40 #11
hvis du benytter
document.all.tags("TR")
Får du samtlige TR frem

Herefter kan du gøre hvad du vil med dem, men det er så alt dit HTML.

Du kan sagtens pakke de områder ind i DIV'er som du ønsker skal forsvinde/komme frem, når man trykker på en knap. Så kan du bruge
document.all.item("skjul"), hvor "skjul" så er dit DIV navn
Avatar billede dmg Nybegynder
15. marts 2005 - 13:45 #12
Jamen, jeg kan simpelthen ikke forstå, hvorfor man ikke kan sige. Den og den tr skal vises og den og den skal ikke vises med via et id??? jeg er ik vild go til javascript bare så i ved det? det virker bedst med eksempler
Avatar billede barklund Nybegynder
15. marts 2005 - 13:47 #13
Det kan man også godt - de kan bare ikke have samme id, for så bliver browseren forvirret og tager kun en enkelt af dem. Derfor giver man dem forskellige id'er og så kan man tilgå dem et af gangen.
Avatar billede skyggen2000 Nybegynder
15. marts 2005 - 13:49 #14
document.all.item("skjul"), dette her får samtlige af dine elementer, med "skjul" ID'et, som jeg skrev før. Hvis alle dine TR hedder det, er det dem du får er det de, du får.
Avatar billede skyggen2000 Nybegynder
15. marts 2005 - 13:49 #15
yes, men man kan sagtens få dem alle, og iterere igennem dem. som i mit eksempel ovenfor.
Avatar billede dmg Nybegynder
15. marts 2005 - 13:52 #16
altså sådan her? onClick="document.all.item('skjul').style.display='none';
Avatar billede dmg Nybegynder
15. marts 2005 - 13:55 #17
sådan har jeg gjordt og det virker altså ikke?:

<input type="radio" value="Forespørgesel" name="anmodning" onClick="document.all.item('skjul').style.display='none';" checked></td>

<input type="radio" value="Endelig booking" name="anmodning" onClick="document.all.item('skjul').style.display='block';"></td>

<tr style="display:none" id="skjul">
            <td>2. Sagsnr</td>
            <td><input type="text" name="sagsnr" size="18"></td>
        </tr>
        <tr style="display:none" id="skjul">
            <td>3. Projektnr</td>
            <td><input type="text" name="projektnr" size="18"></td>
        </tr>
        <tr>
            <td>4. Kontorrelateret udgift (Konferrence o.lign)</td>
            <td><input type="checkbox" name="Kontorrelateret" value="Ja"></td>
        </tr>
        <tr>
Avatar billede dmg Nybegynder
15. marts 2005 - 13:57 #18
den siger "style is null or not an object"
Avatar billede skyggen2000 Nybegynder
15. marts 2005 - 13:58 #19
Så er det altså også serveret på et fad:)

<form name="hej">

<input type='radio' name='radio' onClick="showHideAll('none');" checked>Skjul textbox
<input type='radio' name='radio' onClick="showHideAll('block');">vis textbox
<table border='2' id="tableRow">

<tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t1">  </td></tr>
<tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t2"></td></tr>
<tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t3"></td></tr>

</table>
</form>

<script language="javascript">
    function showHideAll(param)
    {
        var tempArray = document.all.item("skjul");
       
        for (var i = 0; i < tempArray.length; i++)
        {
            if(tempArray[i])
                tempArray[i].style.display = param;
        }
    }
</script>
Avatar billede skyggen2000 Nybegynder
15. marts 2005 - 14:00 #20
document.all.item('skjul') returnerer et array, dette skal du køre igennem, derfor melder den fejl til dig.
Avatar billede dmg Nybegynder
15. marts 2005 - 14:01 #21
Det ser super fedt ud skyggen!!! men det virker ik :( der sker ikke noget, når man trykker på nogen af dem?
Avatar billede dmg Nybegynder
15. marts 2005 - 14:02 #22
Det ser ellers virkelig godt ud!
Avatar billede skyggen2000 Nybegynder
15. marts 2005 - 14:06 #23
Hvis jeg kører præcis det kode jeg har kopieret ind i IE, så kører det. Husk lige at genopfrisk siden, så den ikke kører den cached.
Avatar billede dmg Nybegynder
15. marts 2005 - 14:06 #24
hov undskyld sorry... det var cache på min computer der lavet lort i den.... fedt nok skyggen.... du har været en stor hjælp... og også jer andre.... points bliver uddelt om lidt :-)
Avatar billede dmg Nybegynder
15. marts 2005 - 14:06 #25
hehe... netop ;-)
Avatar billede skyggen2000 Nybegynder
15. marts 2005 - 14:09 #26
Hvordan får man egentligt noget god karma her i biksen?
Avatar billede dmg Nybegynder
15. marts 2005 - 14:10 #27
hehe... det ved jeg ikke, men vil med glæde give dig noget,,, du har hjulpet mig før!!! Hermed et svar til dig skyggen...
Avatar billede skyggen2000 Nybegynder
15. marts 2005 - 14:29 #28
Måtte lige undersøge det:)
Hvis man klikker på brugeren som har kommenteret eller givet et svar kan man enten se hans info, eller give karma. Så blev jeg også lidt klogere i dag:)
Avatar billede skyggen2000 Nybegynder
15. marts 2005 - 14:30 #29
desuden er det faktisk nok en meget god ide, at læse dette her:
http://expfaq.1go.dk/?id=78#karma
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester