Autor Zpráva
vodys
Profil
Zdravím.
Malý problém, který zvládne vyřešit kdokoliv krom mě s neznalostí JS.
Otevírám po kliknutí na způsob platby různé divy, dle frekvence plateb. Také otevírám div s textovými inputy.
Problém nastává v tom, že použitý JS se aplikuje na vše .. Pokud tedy inputem (radio) rozbalím div, další nezávislý input (radio) jej zavře.
Také pokud inputem rozbalím div s dalšími radio inputy, po kliknutí na jakýkoliv v daném divu se div opět zavře.

Zde fiddle - jsfiddle.net/72jzy8gb

To je nežádoucí chování.
Někdo znalý rady?
Díky!

Úryvek formuláře:
<input type="radio" name="frequency" value="once"> Jednorázově</div>
<input type="radio" name="frequency" value="monthly"> Měsíčně


<b>Požadujete potvrzení o daru?</b><br>
<input type="radio" name="wantDonationCertificate" value="1" nazev="adresa"> Ano<br>
<input type="radio" name="wantDonationCertificate" value="0" checked=""> Ne<br>
</td>

<div class="1 ukaz">
<input name="street" type="text" placeholder="Ulice a číslo popisné"><br>
<input name="city" type="text" placeholder="Obec/město"><br>
<input name="postcode" type="text" placeholder="PSČ"><br>
</div>

<div class="once ukaz">
<b>Výběr platby:</b><br>
<input type="radio" name="paymentMethod" value="proxypay_charge"> Platba kartou<br>
<input type="radio" name="paymentMethod" value="funds_transfer"> Platba převodem<br>
<input type="radio" name="paymentMethod" value="payu_transfer"> Online platba PayU
</div>


<div class="monthly ukaz">
<b>Výběr platby:</b><br>
<input type="radio" name="paymentMethod" value="proxypay_charge"> Platba kartou<br>
<input type="radio" name="paymentMethod" value="funds_transfer"> Platba převodem
</div>

<input type="radio" name="custom[souhlas_se_zasilanim_novinek_svobody_zvirat_a_se_zpracovanim_osobnich_udaju_pro_tyto_ucely]" value="1" checked=""> Ano
<input type="radio" name="custom[souhlas_se_zasilanim_novinek_svobody_zvirat_a_se_zpracovanim_osobnich_udaju_pro_tyto_ucely]" value="0"> Ne

JS:
$(document).ready(function() { 
                $('input[type="radio"]').click(function() { 
                    var inputValue = $(this).attr("value"); 
                    var targetBox = $("." + inputValue); 
                    $(".ukaz").not(targetBox).hide(); 
                    $(targetBox).show(); 
                }); 
            }); 
Tomášeek
Profil
vodys:
Samozřejmě, na řádku 5 píšeš, že se všechny kromě aktuálně kliknutého mají zavřít. A vzhledem k tomu, že neexistuje prvek třeba .proxypay_charge, zavře se již otevřený element.

Tohle není nic nepřekonatelného, základní logika na tom tvém JS pětiřádku. Zkus se nad tím zamyslet.

Jen pod čarou poznámka, class="1" není validní třída (nesmí začínat číslicí).
vodys
Profil
No, kdybych se nad tím uměl zamyslet a ovládal JS, nepíšu sem.
Díky za radu, ale v důsledku mi nepomůže. JS neumím ani v základech a daný kód jsem přebral z jiného webu.
Bubák
Profil
Tomášeek:
class="1" není validní třída (nesmí začínat číslicí)
Může, ale v selektoru se musí zapsat escape sekvencí. stylovani tabulky
Vhodnější je selektory a idéčka začínající číslicí nepoužívat.

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