Cytat
tylko jest malutki problem, mianowicie, gdy 'odchacze' checkboxa to dana wartość 'nie maleje' o tą zdefiniowaną ilość, tak samo z radio
Nie da się tak zrobić z radio i funkcją, którą podałem. Kliknięcie na radio powoduje, że element jest zaznaczony, nie działa jak checkbox, którego kliknięcie zaznacza lub odznacza dany element.
Zmieniona wersja:
Kod
<script type="text/javascript">
function klik(e,a){
var w=e.form.w, v=parseFloat(w.value)
if(isNaN(v))v=0
w.value=(e.checked)?(v+parseFloat(a)):(v-parseFloat(a))
}
</script>
<form>
<input type="text" name="w" />
<input type="radio" name="r" onclick="klik(this, 20)" />
<input type="checkbox" name="c" value="10" onclick="klik(this, this.value)" />
</form>
Można również zastosować poniższe rozwiązanie, ale tutaj po kliknięciu zmieniane są również wartości pól dla radio i checkboxa:
Kod
<script type="text/javascript">
function klik2(e){
var w=e.form.w, v=parseFloat(w.value), a=parseFloat(e.value)
if(isNaN(v))v=0
w.value=v+a
e.value=-a
}
</script>
<form>
<input type="text" name="w" />
<input type="radio" name="r" value="20" onclick="klik2(this)" />
<input type="checkbox" name="c" value="10" onclick="klik2(this)" />
</form>