Jag har textruta med ett värde, låt oss säga 100 från början. Brevid denna textruta har jag checkboxar. När man klickar i en checkbox ska värdet i textrutan minskas med 5. Om jag kryssat i tre checkboxar ska alltså värdet i textrutan vara 85. Ni fattar principen...hur gör jag ? =)
enkel nöt att knäcka
5 svar · 318 visningar · startad av Prime_66
Och om jag kryssar ur en checkbox ska värdet i textrutan återigen öka med 5 såklart.
<form>
<input type="text" name="val" value="100" disabled="disabled">
<input type="checkbox" name="dec" onclick="calc(this.form);">
<input type="checkbox" name="dec" onclick="calc(this.form);">
<input type="checkbox" name="dec" onclick="calc(this.form);">
</form>
<script type="text/javascript">
var value=100;
function calc(obj){
obj.val.value=100;
for(var n=0;n<obj.dec.length;n++){ obj.val.value=parseInt(obj.val.value)-((obj.dec[n].checked)?5:0); }
}
</script>
thanx..ett problem uppstod dock eftersom mina checkboxar inte alla heter samma sak. alla börjar med namnet checkbox och efter det en siffra. För varje ny rad som skapas görs en ny checkbox. Börjar med 1 upp till så många rader som det finns. GÅr det ändra något så att det funkar?
<form>
<input type="text" name="val" value="100" disabled="disabled">
<input type="checkbox" name="checkbox1" onclick="calc(this.form);">
<input type="checkbox" name="checkbox2" onclick="calc(this.form);">
<input type="checkbox" name="checkbox3" onclick="calc(this.form);">
</form>
<script type="text/javascript">
var value=100;
function calc(obj){
obj.val.value=100;
var elm, n = 0;
while(elm = obj.elements['checkbox' + ++n]){ obj.val.value=parseInt(obj.val.value)-(elm.checked?5:0); }
}
</script>
Ahh..tack som fan! Ni är klippor! :e