JavaScript - Validar matriz de radio button

 
Vista:

Validar matriz de radio button

Publicado por Alexander (2 intervenciones) el 04/09/2007 20:40:40
Hola,

Tengo una matriz de radio button y necesito validar que se seleccione un radio button por cada fila y columna, de esta manera: (X es que esta seleccionado, O no lo esta)

1 2 3
A O X O
B X O O
C O O X

La validacion que necesito es que si se selecciona A1 se deberia quitar la seleccion de A2 y B1

Gracias,

Alexander!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Validar matriz de radio button

Publicado por Yo mismo (1 intervención) el 05/09/2007 16:48:44
Y si marcas A3 quitas A2 y C3, pero ¿cuál marcas en tu 1er. caso? B2 supongo ¿y el el segundo caso? marcarás también C2 ¿supongo? Así que no es tan fácil; si lo planteas como filas de radio button, y controlas los cambios antes que el propio control lo haga, para poder conocer la columna seleccionada antes del clic, en esta columna despues del proceso del control tendrás que hacer el clic, pero en la fila que este seleccionada la columna destipo del clic (inicial de usuario).
No sé que tal controlas los eventos, y el javascript pero no se me ocurre nada trivial.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validar matriz de radio button

Publicado por yo mismo (9 intervenciones) el 12/09/2007 13:11:39
<!-- Matriz (l**2) de Radio Buttons por fila y columna (l selecs.) -->
<!-- by Jesus Maria Calleja Pereda ···==< X >==··· JMC-EHS (c) 2007 -->
<html><title>Matriz radio buttons</title>
<body onload="creaMatRadio(5);">
<font color=green><h2>Matriz radio buttons</h2></font>
</body>
<script>
function ndxRadio(nameradio){
var r = document.all(nameradio);
for (var i=0;i<r.length;++i)
if (r[i].checked) return i;
//
return -1;
}
function xcheck(o, ant){
if (ant <0 ) { alert("Error de código!!!!"); return; } // no ha de ocurrir
var tbody = o.parentElement?o.parentElement.parentElement.parentElement:o.parentNode.parentNode.parentNode;
var nf = tbody.rows.length;
for (var i=0;i<nf;++i){
var of = document.all["rd_"+i];
if (o.name=="rd_"+i) continue; // no hace falta mirar
var ndx = o.parentElement?o.parentElement.cellIndex:o.parentNode.cellIndex;
if (of[ndx].checked) of[ant].click();
}
}
function clic(ev){
miEv = window.event? window.event:ev;
var el = window.event?miEv.srcElement:miEv.target;
if (el.checked) return; // ya 'ta
xcheck(el,ndxRadio(el.name));
if (window.event) miEv.returnValue=true;
else miEv.preventDefault();
return true;
}
// global
var nav = document.body.parentElement?"IE":"";
// Mozilla - FireFox
function creaMatRadio(q){
if (nav=="IE") {creaMatRadioIE(q); return; }
var tabla = document.createElement('table');
tabla.setAttribute('id','idT');
var tbody = document.createElement('tbody');
for (var i=0;i<q;++i){
tr = document.createElement('tr');
for (j=0;j<q;++j){
var td = document.createElement('td');
var input = document.createElement('input');
input.setAttribute('type','radio');
input.setAttribute('name','rd_'+i);
input.setAttribute('id','idRd_'+i+""+j);
input.setAttribute('value',i*q+j);
input.setAttribute('onmousedown','clic(event)');
if(j==i) input.setAttribute('checked',true);
td.appendChild(input);
tr.appendChild(td);
}
tbody.appendChild(tr);
}
tabla.appendChild(tbody);
document.body.appendChild(tabla);
}

// IE
function creaMatRadioIE(q){
var tabla = document.createElement('table');
document.body.appendChild(tabla);
var row = null, cell = null;
var input;
for (var i=0;i<q;++i){
row = tabla.insertRow();
for (j=0;j<q;++j){
cell = row.insertCell();
input = "<input type=radio onmousedown='return clic();' name='rd_"+i+"' id='idRd_"+i+""+j+"' value="+i*q+j;
input += (i==j)?" checked>":">";
cell.insertAdjacentHTML("AfterBegin", input);
}
}
}
</script>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validar matriz de radio button

Publicado por Alexander (2 intervenciones) el 12/09/2007 15:38:55
Gracias... eso ayuda!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar