"Vagn Kofoed" <vagn.koFJERNfoed@mail.dk> writes:
> Jeg har 3 radiogrupper lvl1,lvl2 og lvl3 der alle kan have værdierne 1,2,3.
> Hvis værdien 1 i første gruppe er checked skal værdierne 1 i de to sidste
> gruppe være disabled.
Hvorfor disabled? Kan der ikke bare være valgt en anden?
Denne kode sørger for at et antal radiogrupper, der started med ikke
at have samme radioknap valgt, bliver ved med det:
---
<script type="text/javascript">
function checkedRadio(group) {
for (var i=0;i<group.length;i++) {
if (group[i].checked) {return i;}
}
return NaN;
}
function priorityRadio(form,thisControlName,newChecked /*, ... */) {
var groups = new Array();
for(var i=3;i<arguments.length;i++) {
var controlName = arguments[i];
var group = form[controlName];
var checkedNum = checkedRadio(group);
groups[checkedNum] = group;
}
var oldChecked = groups.length;
for(var i=0;i<groups.length;i++) {
if (!groups[i]) {oldChecked = i;break;}
}
if (oldChecked == newChecked || oldChecked == -1) {return;}
var minChecked = Math.min(newChecked,oldChecked);
var maxChecked = Math.max(newChecked,oldChecked);
var direction = (oldChecked<newChecked)?-1:1;
for(var i=newChecked; i != oldChecked;i+=direction) {
groups[i][i+direction].checked = true;
}
}
</script>
---
Eksempel på hvordan den bruges:
---
<form action="">
<input type="radio" name="lvl1" value="val1" checked="checked"
onclick="priorityRadio(this.form,'lvl1',0,'lvl2','lvl3');">
<input type="radio" name="lvl1" value="val2"
onclick="priorityRadio(this.form,'lvl1',1,'lvl2','lvl3');">
<input type="radio" name="lvl1" value="val3"
onclick="priorityRadio(this.form,'lvl1',2,'lvl2','lvl3');">
<br>
<input type="radio" name="lvl2" value="val1"
onclick="priorityRadio(this.form,'lvl2',0,'lvl1','lvl3');">
<input type="radio" name="lvl2" value="val2" checked="checked"
onclick="priorityRadio(this.form,'lvl2',1,'lvl1','lvl3');">
<input type="radio" name="lvl2" value="val3"
onclick="priorityRadio(this.form,'lvl2',2,'lvl1','lvl3');">
<br>
<input type="radio" name="lvl3" value="val1"
onclick="priorityRadio(this.form,'lvl3',0,'lvl2','lvl1');">
<input type="radio" name="lvl3" value="val2"
onclick="priorityRadio(this.form,'lvl3',1,'lvl2','lvl1');">
<input type="radio" name="lvl3" value="val3" checked="checked"
onclick="priorityRadio(this.form,'lvl3',2,'lvl2','lvl1');">
</form>
---
Den virker også med flere grupper, men der skal være lige så mange værdier
i hver gruppe som der er grupper, og hver gruppe skal have en valgt fra start.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'