Foros del Web » Programando para Internet » Javascript »

Definir funcion segun radio

Estas en el tema de Definir funcion segun radio en el foro de Javascript en Foros del Web. Hola como estan, tengo 3 radio y un textfield. En uno de los casos (radio) debo ingresar numeros. Quiero saber si hay alguna forma de ...
  #1 (permalink)  
Antiguo 11/06/2009, 09:31
Avatar de javiertkd  
Fecha de Ingreso: agosto-2008
Ubicación: Mendoza
Mensajes: 129
Antigüedad: 15 años, 8 meses
Puntos: 1
Definir funcion segun radio

Hola como estan, tengo 3 radio y un textfield. En uno de los casos (radio) debo ingresar numeros. Quiero saber si hay alguna forma de pasarle la funcion al text field para que solo tome numeros en el caso de que seleccione el radio de numero.

La funcion para solo numeros ya la tengo pero no se como poder asignarla para que fucnione en es caso.

Es decir si selecciona el radio nº 3 que entoces el text llame a la funcion de solo numeros, asi no puede ingresar letras



Espero que se entienda

Última edición por javiertkd; 11/06/2009 a las 09:38
  #2 (permalink)  
Antiguo 11/06/2009, 09:51
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Definir funcion segun radio

la solucion varia segun el diseño de tu aplicacion. o sea, la validacion se puede realizar mientras el usuario ingresa la informacion o antes de enviar los datos si fuera el caso de un formulario. en el primer caso tienes que registrar un handler con onclick donde este reasigne el evento registrado en el campo, el cual asumo seria alguno relacionado al teclado (onkeyup, onkeydown, u onkeypress). ademas, tienes que agregar otros eventos a los demas radios para restaurar el evento del campo en caso que el usuario cambie de seleccion.

en el otro caso, donde la validacion se lleva a cabo cuando se envia el formulario, tendrias que definir un patron de desicion. es decir, la validacion determina cual radio esta seleccionado, y de acuerdo a ello se utiliza una funcion u otra para validar el campo.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 11/06/2009, 23:28
Avatar de javiertkd  
Fecha de Ingreso: agosto-2008
Ubicación: Mendoza
Mensajes: 129
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Definir funcion segun radio

Hola zerokilled , si por lo que dices seria el primer caso, Tienes algun ejemplo para que me guie un poco ya que en la web lo busque pero no veo nada que se aproxime a lo que estoy realizando.

Gracias por tu ayuda
  #4 (permalink)  
Antiguo 12/06/2009, 18:53
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Definir funcion segun radio

Código:
<script type="text/javascript">
function alphaValid(input){
var reg = /[^a-z]/ig;
if(reg.test(input.value))input.value = input.value.replace(reg, '');
}

function numValid(input){
var reg = /[^0-9]/g;
if(reg.test(input.value))input.value = input.value.replace(reg, '');
}

function otherValid(input){

}

function assignValid(evt){
var elem = evt.target? evt.target: evt.srcElement;
if(!/input/i.test(elem.nodeName))return;
elem.form.campo.value = "";
elem.form.campo.onkeyup = function(){
window[elem.value](this);
}
}
</script>
<form>
<input type="text" name="campo" /> Campo de ingreso
<div onclick="assignValid(event);">Tipo de validacion:<br />
<input type="radio" name="validation" value="numValid" /> Numerica<br />
<input type="radio" name="validation" value="alphaValid" /> Alpha<br />
<input type="radio" name="validation" value="otherValid" /> Otro
</div></form>
en este momento no tengo tiempo para explicar el codigo. no creo que sea tan complejo salvo la parte donde el DIV tiene registrado el onclick. si tienes alguna duda, dejalo saber.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
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 16:28.