Autor | Zpráva | ||
---|---|---|---|
xciza Profil |
#1 · Zasláno: 7. 8. 2013, 16:55:03 · Upravil/a: xciza
zdravím.
Na webu mám následují formulář: <form action="vypocet#kotva" onsubmit="kontrola()" method="post" accept-charset="utf-8"> <table class="kov"> <tr> <td><h3><span class="zlato">Zlato</span></h3></td> </tr> <tr> <td><label><input id="24" type="radio" value="24" name="kov" onclick="testRadio()" checked>24 karátů</label></td> </tr> <tr> <td><label><input id="18" type="radio" value="18" name="kov" onclick="testRadio()">18 karátů</label></td> </tr> <tr> <td><label><input id="14" type="radio" value="14" name="kov" onclick="testRadio()">14 karátů</label></td> </tr> </table> <table class="kov"> <tr> <td><h3><span class="stribro">Stříbro</span></h3></td> </tr> <tr> <td><label><input id="stribro_ryzi" type="radio" value="stribro_ryzi" name="kov" onclick="testRadio()">Ryzí</label></td> </tr> </table> <table class="kov"> <tr> <td><h3><span class="platina">Platina</span></h3></td> </tr> <tr> <td><label><input id="platina_ryzi" type="radio" value="platina_ryzi" name="kov" onclick="testRadio()">Ryzí</label></td> </tr> </table> <aside class="separator4"></aside> <table class="slitina"> <tr> <td><h3>Slitina</h3></td> </tr> <tr> <td><label><input id="zlato" type="number" step="any" value="99.99" min="0" max="100" name="%zlata" onkeydown="unchecked()">% Zlata</label></td> </tr> <tr> <td><label><input id="stribro" type="number" step="any" value="0" min="0" max="100" name="%stribra" onkeydown="unchecked()">% Stříbra</label></td> </tr> <tr> <td><label><input id="platina" type="number" step="any" value="0" min="0" max="100" name="%platiny" onkeydown="unchecked()">% Platiny</label></td> </tr> </table> <aside class="separator4"></aside> <table class="hmotnost"> <tr> <td><h3>Hmotnost</h3></td> </tr> <tr> <td><label><input type="text" name="gram" value="100">g</label></td> </tr> <tr> <td><label><button type="submit" name="odeslat" tabindex="11" accesskey="o" value="Odeslat">Spočítat</button></label></td> </tr> </table> </form> a k nemu JS kod: <script> function testRadio(){ if(document.getElementById('24').checked) { document.getElementById("zlato").value = "99.99"; document.getElementById("stribro").value = "0"; document.getElementById("platina").value = "0"; }else if(document.getElementById('18').checked){ document.getElementById("zlato").value = "75"; document.getElementById("stribro").value = "18"; document.getElementById("platina").value = "0"; }else if(document.getElementById('14').checked){ document.getElementById("zlato").value = "58.5" document.getElementById("stribro").value = "35" document.getElementById("platina").value = "0" }else if(document.getElementById('stribro_ryzi').checked){ document.getElementById("zlato").value = "0" document.getElementById("stribro").value = "99.99" document.getElementById("platina").value = "0" }else if(document.getElementById('platina_ryzi').checked){ document.getElementById("zlato").value = "0" document.getElementById("stribro").value = "0" document.getElementById("platina").value = "99.99" } } function kontrola(){ var zlato = document.getElementById("zlato").value; var stribro = document.getElementById("stribro").value; var platina = document.getElementById("platina").value; var soucet = zlato + stribro + platina; if(soucet > 100){ alert('Součet procent kovů musí být menší nebo roven 100%.'); } } function unchecked(){ if( (document.getElementById("zlato").value != "99.99")){ document.getElementById('24').checked = false; } </script> ale jediné co me funguje tak je zmena hodnot v polich pri zmene zaskrtnuti radio buttonu. Potreboval bych ale jeste po odeslani formulare kontrolovat zda hodnoty v tech trech inputech nejsou vetsi nez 100 a dale odsktnout radio button pri zmene hodnoty v inputu. Prosím co tam mám spatne? díky tak me tam chybela zavorka a problem vyresen ale jeste bych k tomu mel dotaz: Takhle se me formulář vždy odesle i po tom co to vyhodi hlasku v alertu. ale jak zabranit tomu aby se form odeslal? |
||
Chamurappi Profil |
#2 · Zasláno: 7. 8. 2013, 18:02:27
Reaguji na xcizu:
„Takhle se me formulář vždy odesle i po tom co to vyhodi hlasku v alertu.“ <form onsubmit="return kontrola()" …> kontrola za alert dej return false .
|
||
Časová prodleva: 11 let
|
0