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 |
#2 · Zasláno: 14. 12. 2019, 00:59:11
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 |
#3 · Zasláno: 14. 12. 2019, 12:12:25
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 |
#4 · Zasláno: 14. 12. 2019, 21:38:50
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. |
||
Časová prodleva: 4 roky
|
0