Foros del Web » Programando para Internet » Javascript »

Necesito armar una function

Estas en el tema de Necesito armar una function en el foro de Javascript en Foros del Web. Buenas Sres, tengo lo siguiente: <form name=form1 method=post> <td align=center height=30>Si&nbsp;<input type=radio name="rd1" value="si">&nbsp;No&nbsp;<input type=radio name="rd1" value="no"></td> <td align=center height=30>Poco&nbsp;<input type=radio name="rd2" value="poco">&nbsp;Nada&nbsp;<input type=radio name="rd2" ...
  #1 (permalink)  
Antiguo 21/12/2004, 07:05
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 1
Pregunta Necesito armar una function

Buenas Sres, tengo lo siguiente:

<form name=form1 method=post>
<td align=center height=30>Si&nbsp;<input type=radio name="rd1" value="si">&nbsp;No&nbsp;<input type=radio name="rd1" value="no"></td>
<td align=center height=30>Poco&nbsp;<input type=radio name="rd2" value="poco">&nbsp;Nada&nbsp;<input type=radio name="rd2" value="nada"></td>
</form>

y quiero armar una function que si el usuario no da click en ningun rd1 aparece un alert "no selecciono ninguno de los rd1" , si da click en rd1="SI" y quiere enviar el form sin dar click en algun de los rd2 aparezca un alert que diga que no selecciono algun rd2, pero si se selecciona el rd1="NO" se pongan disabled los rd2 y que luego permita realizar el submit. Trate de implementar lo siguiente:

<script language=javascript>
function controla_radio() {
if(!(document.forms[0].rd1[0].checked)) {
alert("Debe indicar si utiliza los servicios");
return false;
}
if (document.forms[0].rd1["no"].checked ) {
document.forms[0].rd2[0].disabled;
return false;
}

document.form1.submit()
return true
}

</script>

Algo complicado pero algun capo me sabra guiar seguramente.
Saludos.
__________________
Carlunchos

Última edición por carlunchos; 21/12/2004 a las 07:08
  #2 (permalink)  
Antiguo 21/12/2004, 10:05
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 19 años, 10 meses
Puntos: 4
a ver esto:

Código PHP:
function controla_radio() {
if(!(
document.forms[0].rd1[0].checked || document.forms[0].rd1[1].checked )) {
alert("Debe indicar si utiliza los servicios");
return;
}
if (
document.forms[0].rd1[0].checked && (!(document.forms[0].rd1[0].checked || !document.forms[0].rd1[1].checked)) {
alert('No seleccionaste algun rd2');
return;
}
if (
document.forms[0].rd1[1].checked){
document.forms[0].rd2[0].disabled true;
document.forms[0].rd2[1].disabled true;
}
document.form1.submit()


Última edición por SiR.CARAJ0DIDA; 21/12/2004 a las 10:09
  #3 (permalink)  
Antiguo 21/12/2004, 10:42
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61

Esto te serrviría?

<html>
<head>

<script>
var enviare2=false;
var enviare=false;
function r1no(este){
cosa=este.elements['rd2'];
for(a=0;a<2;a++){
cosa[0].disabled=este.elements['rd1'][1].checked;
}
cosa[1].disabled=este.elements['rd1'][1].checked;
enviare=este.elements['rd1'][0].checked;

if(!enviare || (enviare&&enviare2)){
este.elements['envio'].disabled=false;
este.elements['envio'].value="Enviar";
}
else{
este.elements['envio'].disabled=true;
este.elements['envio'].value="Faltan datos";
}
}

</script>
</head>

<body>


<form name=form1 method=post>
<td align=center height=30>Si&nbsp;<input type=radio name="rd1" onclick="r1no(this.form)" value="si">&nbsp;No&nbsp;<input type=radio name="rd1" value="no" onclick="r1no(this.form)"></td><br><br>

<td align=center height=30>Poco&nbsp;<input type=radio name="rd2" onclick="enviare2=true;r1no(this.form)" value="poco">&nbsp;Nada&nbsp;<input type=radio onclick="enviare2=true;r1no(this.form)" name="rd2" value="nada"></td>
<input name="envio" value="Faltan datos" disabled type="submit">
</form>



</body>
</html>
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #4 (permalink)  
Antiguo 21/12/2004, 12:51
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 1
Veo y les comento. Gracias muchachos.
__________________
Carlunchos
  #5 (permalink)  
Antiguo 21/12/2004, 18:10
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 1
Hola Karlankas, he optado por tu sugerencia, pero quise agregar un radio mas (otro rd2="menos que nada") pero no se en que parte del codigo agregarlo. He intentado explicarme la secuencia que sigue tu codigo pero me lio y no puedo seguirlo.

Le seguire dando vueltas al asunto.

Saludos.
__________________
Carlunchos
  #6 (permalink)  
Antiguo 22/12/2004, 02:30
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Bastaria con poner onclick="enviare2=true;r1no(this.form)" en esa nueva opción y cambiar el for(a=0;a<2... por for(a=0;a<3... pero como son chapucillas he arreglado el ejercicio añadiendo una función que carga al arrancar la página que evita el tener que poner el onclick y cambiado el for para que tenga en cuenta el número total de opciones, de tal forma que ya puedes añadir todas las opciones que quieras sin preocuparte.

Y he arreglado un problemilla que tenía que permitía mandar el formulario sin elegir ninguna opción del rd1 y eligiendo cualquiera del rd2.

Cualquier cosa me comentas!

El resultado es:

Código HTML:
<html>
<head>

<script>
var enviare2=false;
var enviare=false;
function cargado(){
forma=document.forms['form1'];
for(aa=0;aa<forma.elements.length;aa++){
elemento=forma.elements[aa];
if(elemento.name=="rd2"){
elemento.onclick=function pincho(){enviare2=true;r1no(this.form)}
elemento.disabled=true;
}
}

}

function r1no(este){

cosa=este.elements['rd2'];
for(a=0;a<cosa.length;a++){
cosa[a].disabled=este.elements['rd1'][1].checked;
}

enviare=este.elements['rd1'][0].checked;

if(!enviare || (enviare&&enviare2)){
este.elements['envio'].disabled=false;
este.elements['envio'].value="Enviar";
}
else{
este.elements['envio'].disabled=true;
este.elements['envio'].value="Faltan datos";
}
}

</script>
</head>

<body onload="cargado()">


<form name=form1 method=post>
<td align=center height=30>Si&nbsp;<input type=radio name="rd1" onclick="r1no(this.form)" value="si">&nbsp;No&nbsp;<input type=radio name="rd1" value="no" onclick="r1no(this.form)"></td><br><br>

<td align=center height=30>Poco&nbsp;<input type=radio name="rd2"  value="poco">&nbsp;Nada&nbsp;<input type=radio  name="rd2" value="nada">&nbsp;Un poco&nbsp;<input type=radio  name="rd2" value="poco"></td>
<input name="envio" value="Faltan datos" disabled type="submit">
</form>



</body>
</html> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #7 (permalink)  
Antiguo 27/12/2004, 04:54
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 1
Estimado Karlankas, gracias por el regalito de navidad (codigo del post de arriba). Doble el premio teniendo en cuenta que el regalo viene desde Gaminedes.

Saludos.
__________________
Carlunchos
  #8 (permalink)  
Antiguo 27/12/2004, 04:58
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
jeje! Espero que te sea útil!!

Un apretón de antenas y Feliz Navidad!






y próspero ciclo solar nuevo!!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #9 (permalink)  
Antiguo 13/01/2005, 11:16
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 1
Karlankas, te tengo algo que comentar.

Utilice el codigo que me habias pasado respecto de los buttons, pero tuve que hacerle una modificacion para que funcione. Ahora debo agregarle una fila mas de buttons pero no me funciona, este es el codigo:

<script language=javascript>
var enviare2=false;
var enviare=false;

function cargado(){
forma=document.forms['form1'];
for(aa=0;aa<forma.elements.length;aa++){
elemento=forma.elements[aa];
if(elemento.name=="rd2"){
elemento.onclick=function pincho(){enviare2=true;r1no(this.form)}
elemento.disabled=true;
}
}

}

function r1no(este){
cosa=este.elements['rd2'];
for(a=0;a<cosa.length;a++){
cosa[a].disabled=este.elements['rd1'][1].checked;
}

enviare=este.elements['rd1'][0].checked;

if(!enviare || (enviare&&enviare2)){
este.elements['envio'].disabled=false;
este.elements['envio'].value="Siguiente";
}
else{
este.elements['envio'].disabled=true;
este.elements['envio'].value="Faltan datos";
}
}
</script>

y en el formulario



<td align=center height=30>Si&nbsp;<input type=radio name="rd1" value="1.1" onclick="r1no(this.form)">&nbsp;No&nbsp;<input type=radio name="rd1" value="1.2" onclick="r1no(this.form)"></td>
<tr>
<td align=center colspan=2 height=30>Gerente&nbsp;<input type=radio name="rd2" value="2.1" onclick="enviare2=true;r1no(this.form)">&nbsp;Prof esional<input type=radio name="rd2" value="2.2" onclick="enviare2=true;r1no(this.form)">&nbsp;Jefe <input type=radio name="rd2" value="2.3" onclick="enviare2=true;r1no(this.form)">&nbsp;Técn ico<input type=radio name="rd2" value="2.4" onclick="enviare2=true;r1no(this.form)"></td>

</tr>
<tr>
<td height=30 colspan=2 align=center bgcolor="#FFFFCC">Los Permisos gestionados
corresponden a </td>
</tr>
<td align=center colspan=2 height=30>Capital y Norte&nbsp;<input type=radio name="rd3" value="3.1" onclick="enviare2=true;r1no(this.form)">&nbsp;Conu rbanos e Interior<input type=radio name="rd3" value="3.2" onclick="enviare2=true;r1no(this.form)">&nbsp;FO<i nput type=radio name="rd3" value="3.3" onclick="enviare2=true;r1no(this.form)"></td>
</tr>

al agregar el rd3 deshabilita solo rd2 , quedando rd3 habilitado. Como debo referenciar en la function para que tenga en cuenta que si se selecciona rd1 (NO) se deshabiliten hacia abajo todos los otros buttons y si se selecciona rd1(SI) recien permita hacer el submit al seleccionar alguna opcion de todos los buttons?.

Gracias y Saludos.
__________________
Carlunchos
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 12:29.