Opcjonalne kontrolki js ? help

0

Uzytkownik strony www na podstronie ma np formularz:

Podaj Imie:
Podaj Nazwisko:

i teraz ma chexBox'a / button w stylu (jesli to kliknie to uzytkownik bedzie mogl podac swoj opis) chodzi generalnie o to ze nie chce by formularz dla "opis" byl widoczny na podstronie... byl tylko opcjonalny jesli kliknie to pokaze sie w przegladarce na tej samej podstronie pod imie i nazwisko jeszcze pole na opis bez przeladowania calej podstrony !. Nie moge znaleźć rozwiazania :/. Myslalem cos w stylu ze np: jesli kliknie button to formuarz dop zrobi sie widoczny czyli wywola sie jakas funkcja co przypisze visable na true ale juz nie mam sil. Moze ktos robil juz cos takiego i by mi mogl kawalek kodziny podeslac do wglądu ?. :(

OK i jest odpowiedz jasna i prosta:

**nr1: **łopatologia

<script language="javascript">
var status=0;
function toggle2() {
                    if(status==0){
                                  Link1.style.display="";
                                  status=1;
                                  }
                    else{
                         Link1.style.display = "none";
                         status =0;
                         }
                    }
</script>

html:
<br>


<input type="button" name="abc" value="on/off 1" onClick="toggle2();">
<div id="Link1" style="display: none">
tekst tekst tekst.
<input type="textbox"></div>
<br>

==============================================================
nr2: polegam skorzystac z funkcji toggle(id){} ktora wyglada nastepujaco:

 
<script language="javascript">
function toggle(Id) {
                    target = document.all(Id);
                    if (target.style.display == "none"){
                    target.style.display="";
                    } else {
                    target.style.display="none";
                           }
                    }
</script>

============================================================== :)

0

Javascriptem.

<script type="text/javascript">
function pokazDodatkowePola(status) {
    if (status == TRUE) {
        document.getElementById('dodatkowePola').display = 'inline';
    } else {
        document.getElementById('dodatkowePola').display = 'none';
    }
}
</script>
Imię: <input type="text" name="imie" value=""><br>
Nazwisko: <input type="text" name="nazwisko" value=""><br>
<input type="checkbox" name="opis" onClick="pokazDodatkowePola(this.checked);">
<div style="display: none;" id="dodatkowePola">
Tutaj jakieś dodatkowe rzeczy które pojawią się po zaznaczeniu checkboxa.
</div>

Mam nadzieje że rozumiesz i że chodziło o to...

0

tak dokladnie o to mi chodzilo ! :)

1

Adam, ty to chyba już jesteś zmęczony :)

1

W funkcji jednak warto uniknąć powtórzeń. W ogóle można zapisać ją w jednej linii:

function pokazDodatkowePola(status) {
    document.getElementById('dodatkowePola').display = status ? 'inline' : 'none';
}

Dla porządku dodam, że gdy pole jest zaznaczone, to atrybut checked może mieć wartość 'checked', a nie true. Oryginalny kod jednak powinien zadziałać ze względu na koercję typów zapewnianą przez operator ==, ja radzę jednak tego operatora po prostu uniknąć.

edit: a tak naprawdę to zamiast 'inline' zwykle można dać po prostu pusty string: ''. Polecam to rozwiązanie, bo sprawia, że display nie jest forsowane na 'inline' gdy np. powinno być 'block'. Wystarczy tylko dodawać i usuwać 'none'.

1 użytkowników online, w tym zalogowanych: 0, gości: 1