Autor Zpráva
vecerapl
Profil
Nejlépe přes jquery. Mám:
    <td>
    <select name="zaplaceno">
    <option value="0">Ne</option>
    <option value="1" selected="selected">Ano</option>
    </select>
    </td>


Pokud přepnu z 0 na 1, potřebuji zobrazit obsah a to pouze při tom přepnuti z 0 na 1 v select.
  <tr>
    <td><label>Napsat vzkaz:</label></td>
    <td><a href="#" class="email">Při změně inzerátu z bezplatného na placený můžete přiložit Váš vzkaz.</a>
<span style="display:none;" id="email">
<br><textarea name="vzkaz" cols="70" rows="10"></textarea>
</span>
    </td>
  </tr>
Jan Tvrdík
Profil
Zkus něco takového:
$(document).ready(function () {
    $("select[name=zaplaceno]").bind("change", function (e) {
        var email = $("#email");
        if (this.value == 1) email.show();
        else email.hide();
    });
});
vecerapl
Profil
Nefunguje, ale nevím proč.
vecerapl
Profil
Poradí někdo. Předem moc děkuji.
Tori
Profil
Nemohlo by tam vadit to uzavření blokové <textarea> do řádkového <spanu>? (I když zkoušela jsem tento fragment v jsFiddle a šlo to, tak nevím.)
Darker
Profil
vecerapl:
Neporušuj pravidlo osm.

Tori:
Určitě by se to mělo aspoň zobrazit.


Skusil bych ještě this.value == "1"
vecerapl
Profil
Stále nefunguje. Radši přeposílám celou strukturu.

<script>
  $(document).ready(function(){
    
    $("a.email").click(function () {
      $("#email").toggle("fast");
    });   
    
  });

$(document).ready(function () {
    $("select[name=zaplaceno]").bind("change", function (e) {
        var email = $("#email");
        if (this.value == "1") email.show();
        else email.hide();
    });
});
</script>

<form action="detail.php?edit=135" class="udaje" name="ok" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Detail inzerátu:</legend>
<table style="width:650px">
  <tr>
    <td><label>Charakter inzerce:</label></td>
    <td><input id="charakter" type="radio" class="radio" name="komercni" value="0" checked="checked" /> Bezplatná soukromá inzerce<br />

        <input id="charakter" type="radio" class="radio" name="komercni" value="1" /> Placená komerční inzerce</td>
  </tr>
  <tr>
    <td><label>Napsat vzkaz:</label></td>
    <td><a href="#" class="email">Při změně inzerátu z bezplatného na placený můžete přiložit Váš vzkaz.</a>
<span style="display:none;" id="email">
<br><textarea name="vzkaz" cols="70" rows="10"></textarea>

</span>
    </td>
  </tr>
Tori
Profil
vecerapl:
V #1 píšete:
<select name="zaplaceno">
    <option value="0">Ne</option>
a tady zas:
<input id="charakter" type="radio" class="radio" name="komercni" value="0" checked="checked" /> 
vecerapl
Profil
Jsem já to v*l. Má to být s tím radio name="komercni".

I tak jsem to zkusil ten javascript pozměnit a nefunguje:
  $(document).ready(function () {
    $("radio[name=komercni]").bind("change", function (e) {
        var email = $("#email");
        if (this.value == "1") email.show();
        else email.hide();
    });
});
Chamurappi
Profil
Reaguji na vecerapla:
Protože value se při změně výberu nemění, mění se checked. Pokud jsou ty přepínače dva, měl by stačit jeden onchange.
__construct
Profil
vecerapl:
v jQuery sa radio selektor označuje :radio.
<mimo-téma>
Prečo nedávaš radio buttony do labelov? Nič nemám radšej ako keď musím klikať na malinký krúžok namiesto nadpisu - myslím, že nie som sám :-)
</mimo-téma>
vecerapl
Profil
Jak by vypadal následny funkční javascript? Moc Vám děkuji, ale javascript neovládám.
__construct
Profil
vecerapl:
Proste tam pridáš dvojbodku:
<script>
$(document).ready(function () {

    $("a.email").click(function () {
      $("#email").toggle("fast");
    });

    $(":radio[name=zaplaceno]").bind("change", function (e) {
        var email = $("#email");
        if (this.value == "1") email.show();
        else email.hide();
    });
});
</script>

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0