Foros del Web » Programando para Internet » Javascript »

Validación de Radio Buttons

Estas en el tema de Validación de Radio Buttons en el foro de Javascript en Foros del Web. Hola!! Espero estén tod@s bien! Mi problema es el siguiente: En mi sistema, dependiendo del rol que se tenga se pueden ver o no todos ...
  #1 (permalink)  
Antiguo 01/07/2011, 09:26
Avatar de eliza_ralves  
Fecha de Ingreso: junio-2009
Ubicación: Caracas
Mensajes: 126
Antigüedad: 14 años, 9 meses
Puntos: 2
Exclamación Validación de Radio Buttons

Hola!! Espero estén tod@s bien! Mi problema es el siguiente: En mi sistema, dependiendo del rol que se tenga se pueden ver o no todos los campos de un formulario, ya logre hacer que si por ejemplo:

1. Si es administrador o director se muestren todos los radio-buttons que tengo, y dependiendo del que escoja, va a estar visible o no (segun la opción que escoja).

2.- Si es Gerente no se muestra el primer radio-button pero los demás si.

3.- Si es Líder sólo muestra el último radi-button (muestra el texto mas no el radio-button asociado porque no puede mas ninguna acción de radio-button)

El problema ocurre cuando quiero hacer idcampo.disabled= true / false dentro del javascript para cuando es Gerente, ya que si es administrador / director si me lo hace. Porque no me lo hace??

Código javascript:

function cambiaRadioGraf(){

var checkD = document.getElementById('tipoB1');
var checkR = document.getElementById('tipoB2');
var checkF = document.getElementById('tipoB3');

var SelectDis = document.getElementById('disciplina');
var SelectOfic = document.getElementById('region');
var fecha1 = document.getElementById('fechaCalend1');
var fecha1_Disp = document.getElementById('fecha_Calend1_Disp');
var fecha2 = document.getElementById('fechaCalend2');
var fecha2_Disp = document.getElementById('fecha_Calend2_Disp');


// Si el radio button Disciplina ha sido seleccionado
if(checkD.checked == true) {
alert('disciplina');
SelectDis.disabled = false;
SelectOfic.disabled = true;
fecha1.disabled = true;
fecha1_Disp.disabled = true;
fecha2.disabled = true;
fecha2_Disp.disabled = true;

}

// Si el radio button Oficina ha sido seleccionado
if(checkR.checked == true) {
alert('region');
SelectDis.disabled = true;
SelectOfic.disabled = false;
fecha1.disabled = true;
fecha1_Disp.disabled = true;
fecha2.disabled = true;
fecha2_Disp.disabled = true;
}

// Si el radio button Fecha ha sido seleccionado
if(checkF.checked == true) {
alert('fecha');
SelectDis.disabled = true;
SelectOfic.disabled = true;
fecha1.disabled = false;
fecha1_Disp.disabled = false;
fecha2.disabled = false;
fecha2_Disp.disabled = false;

}
}

Fragmento del Código PHP:

<?php
// Este campo sólo se muestra si el usuario es Administrador o Director
if($rol_Actual=='Director' || $rol_Actual=='Administrador'){

?>
<tr>
<td><input type="radio" class="radio-form" name="tipoB1" id="tipoB1" <?php if($opcion == 1 || $select == 'AD' ) echo 'checked="checked" ';?> onclick="cambiaRadioGraf()"/></td>
<th class="title_form">Por Disciplina:</th>
<td><select class="select_form" name="disciplina" id="disciplina">

<option value="Todas" selected="selected">Todas</option>

<?php
// Cargar disciplinas registradas en la lista desplegable correspondiente
for ($i = 1; $i <= count($disciplinas); $i++){

$nom_dis = $disciplinas[$i]["Nombre"];

?>
<option value="<?php echo $nom_dis; ?>"><?php echo $nom_dis; ?></option>
<?php

}
?>
</select>
</td>
</tr>
<?php
}
?>

<?php
// Este campo sólo se muestra si el usuario es Administrador, Director, Gerente o Líder
if($rol_Actual=='Director' || $rol_Actual=='Administrador' || $rol_Actual=='Gerente'){

?>

<tr>
<td><input type="radio" class="radio-form" name="tipoB1" id="tipoB2" <?php if($opcion == 2 || $select == 'G') echo 'checked="checked"';?> onclick="cambiaRadioGraf()" /></td>
<th class="title_form">Por Regi&oacute;n:</th>
<td><select class="select_form" name="region" id="region" >
<option value="Todas" selected="selected">Todas</option>
<?php
// Cargar oficinas registradas en la lista desplegable correspondiente
for ($i = 1; $i <= count($oficinas); $i++){

$cod_ofic = $oficinas[$i]["Codigo"];
$nom_ofic = $oficinas[$i]["Ubicacion"];

?>
<option value="<?php echo $cod_ofic; ?>"><?php echo $nom_ofic; ?></option>
<?php

}

?>
</select>
</td>
</tr>

<?php
}
?>
<tr>
<td><input <?php if($opcion == 3) echo 'type="hidden" class=""';?> type="radio" class="radio-form" name="tipoB1" id="tipoB3" onclick="cambiaRadioGraf()"/></td>
<th class="title_form">Por Fecha:</th>
</tr>
<tr>
<td>
<th class="title_form">Fecha Inicio:</th>
</td>
<td>
<input type="text" class="text_form" name="fechaCalend1" id="fechaCalend1" size="18" readonly="readonly" />
<input type="button" class="botonCalend" id="fecha_Calend1_Disp" />
</td>
</tr>
<tr>
<td>
<th class="title_form">Fecha Final:</th>
</td>
<td>
<input type="text" class="text_form" name="fechaCalend2" id="fechaCalend2" size="18" readonly="readonly" />
<input type="button" class="botonCalend" id="fecha_Calend2_Disp" />
</td>
</tr>

Espero me puedan echar una ayudita.... GRACIAS! =)
__________________
“El mayor enemigo del conocimiento no es la ignorancia, sino la ilusión del conocimiento”— Stephen Hawking

Última edición por eliza_ralves; 01/07/2011 a las 09:34
  #2 (permalink)  
Antiguo 01/07/2011, 09:38
Avatar de eliza_ralves  
Fecha de Ingreso: junio-2009
Ubicación: Caracas
Mensajes: 126
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Validación de Radio Buttons

Me falto una cosilla:

<?php

$opcion = NULL;
$select = NULL;

if($rol_Actual=='Administrador' || $rol_Actual=='Director'){
$opcion= 1;}

if($rol_Actual=='Gerente'){
$opcion= 2;
}

if($rol_Actual=='Líder'){
$opcion= 3;}
?>
__________________
“El mayor enemigo del conocimiento no es la ignorancia, sino la ilusión del conocimiento”— Stephen Hawking

Última edición por eliza_ralves; 01/07/2011 a las 10:12
  #3 (permalink)  
Antiguo 01/07/2011, 13:27
Avatar de eliza_ralves  
Fecha de Ingreso: junio-2009
Ubicación: Caracas
Mensajes: 126
Antigüedad: 14 años, 9 meses
Puntos: 2
Sonrisa Respuesta: Validación de Radio Buttons

Hola chic@s ya lo he resuelto. Para los que les pase lo mismo que a mi, esto era lo que pasaba: La variable del radio-button que no utilizaba cuando era Gerente (Disciplina) era la que me estaba haciendo conflicto porque sencillamente "no lo encontraba definida" para el rol.

La solución fue que cree otra función, pero esta vez sólo para cuando era Gerente ($opcion== 2). (La función ya publicada se la deje para cuando sea $opcion == 1)

Código javascript:

function cambiaRadioGraf2(){

// Valores actuales de los radio buttons y campos de texto para el
// formulario de graficos estadisticos
var checkR = document.getElementById('tipoB2');
var checkF = document.getElementById('tipoB3');

var SelectOfic = document.getElementById('region');
var fecha1 = document.getElementById('fechaCalend1');
var fecha1_Disp = document.getElementById('fecha_Calend1_Disp');
var fecha2 = document.getElementById('fechaCalend2');
var fecha2_Disp = document.getElementById('fecha_Calend2_Disp');


// Si el radio button del código ha sido seleccionado
if(checkR.checked == true) {
alert('region DE 2');
SelectOfic.disabled = false;
fecha1.disabled = true;
fecha1_Disp.disabled = true;
fecha2.disabled = true;
fecha2_Disp.disabled = true;
}

if(checkF.checked == true) {
alert('fecha DE 2' );
SelectOfic.disabled = true;
fecha1.disabled = false;
fecha1_Disp.disabled = false;
fecha2.disabled = false;
fecha2_Disp.disabled = false;
}
}

Fragmento del Cógigo PHP:

<?php
// Este campo sólo se muestra si el usuario es Administrador o Director
if($rol_Actual=='Director' || $rol_Actual=='Administrador'){

?>
<tr>
<td><input type="radio" class="radio-form" name="tipoB1" id="tipoB1" <?php if($opcion == 1 ) echo 'checked="checked" ';?> onclick="cambiaRadioGraf1()"/></td>
<th class="title_form">Por Disciplina:</th>
<td><select class="select_form" name="disciplina" id="disciplina">

<option value="Todas" selected="selected">Todas</option>

<?php
// Cargar disciplinas registradas en la lista desplegable correspondiente
for ($i = 1; $i <= count($disciplinas); $i++){

$nom_dis = $disciplinas[$i]["Nombre"];

?>
<option value="<?php echo $nom_dis; ?>"><?php echo $nom_dis; ?></option>
<?php
}
?>
</select>
</td>
</tr>

<?php
}
?>

<?php
// Este campo sólo se muestra si el usuario es Administrador, Director, Gerente o Líder
if($rol_Actual=='Director' || $rol_Actual=='Administrador' || $rol_Actual=='Gerente'){
?>

<tr>
<td><input type="radio" class="radio-form" name="tipoB1" id="tipoB2" <?php if($opcion == 2) echo 'checked="checked" onclick="cambiaRadioGraf2()"';?> onclick="cambiaRadioGraf1()" /></td>
<th class="title_form">Por Regi&oacute;n:</th>
<td><select class="select_form" name="region" id="region" <?php if($opcion == 2) echo 'checked="checked"';?> >
<option value="Todas" selected="selected">Todas</option>
<?php
// Cargar oficinas registradas en la lista desplegable correspondiente
for ($i = 1; $i <= count($oficinas); $i++){

$cod_ofic = $oficinas[$i]["Codigo"];
$nom_ofic = $oficinas[$i]["Ubicacion"];
?>
<option value="<?php echo $cod_ofic; ?>"><?php echo $nom_ofic; ?></option>
<?php
}
?>
</select>
</td>
</tr>

<?php
}
?>
<tr>
<td><input <?php if($opcion == 3) echo 'type="hidden" class=""';?> type="radio" class="radio-form" name="tipoB1" id="tipoB3" <?php if($opcion == 2) echo 'onclick="cambiaRadioGraf2()"';?> onclick="cambiaRadioGraf1()"/></td>
<th class="title_form">Por Fecha:</th>
</tr>
__________________
“El mayor enemigo del conocimiento no es la ignorancia, sino la ilusión del conocimiento”— Stephen Hawking

Etiquetas: radio, validar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:46.