Foros del Web » Programando para Internet » Javascript »

Validar una funcion dentro de otra

Estas en el tema de Validar una funcion dentro de otra en el foro de Javascript en Foros del Web. HOLA A TODOS, les traigo una duda, media macabra :S como hago para validar otra una funcion desde otra funcion.. osea asi: <script type="text/javascript"> function ...
  #1 (permalink)  
Antiguo 01/10/2010, 22:20
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 7 meses
Puntos: 9
Exclamación Validar una funcion dentro de otra

HOLA A TODOS, les traigo una duda, media macabra :S como hago para validar otra una funcion desde otra funcion.. osea asi:

<script type="text/javascript">
function crearCampos(cantidad){
var div = document.getElementById("campos_dinamicos");
while(div.firstChild)div.removeChild(div.firstChil d); // remover elementos;
for(var i = 1, cantidad = Number(cantidad); i <= cantidad; i++){
var salto = document.createElement("P");
var input = document.createElement("input");
var input = document.createElement("<input onkeypress='return entero(event);' onchange='checa(this);checap999(crearemp);' style='background-color: #9EB9F8; color: #000000;'>");
var text = document.createTextNode("Autobùs " + i + ": ");
input.setAttribute("name", "campo" + i);
input.setAttribute("size", "6");
input.setAttribute("maxLength","6");
//input.setAttribute("onKeyUp", "contar(this.form)");
input.className = "input";
salto.appendChild(text);
salto.appendChild(input);
div.appendChild(salto);
}
}
</script>


en esta parte:

var input = document.createElement("<input onkeypress='return entero(event);' onchange='checa(this);checap999(crearemp);'

onchange='checa(this);checap999(crearemp);' lo que quiero es validar si en la otra funcion coloco un dato .. la otra funcion es:

<script type="text/javascript">
function crearemp(cantidad){var div = document.getElementById("campo_empleado");
bla bla bla .... (es igual q la de arriba pero con otro nombre y valores)
</script>
de ante mano MUCHAS GRACIAS!!!!
  #2 (permalink)  
Antiguo 01/10/2010, 22:28
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Validar una funcion dentro de otra

esa función solo se ejecutará en el momento que se active el evento onchange del elemento que estas creando, explica mejor porque no comprendo lo que pretendes hacer
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 01/10/2010, 22:30
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: Validar una funcion dentro de otra

llevo un rato leyendo y de verdad que no entiendo nada de tu explicacion
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 01/10/2010, 22:57
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 7 meses
Puntos: 9
Respuesta: Validar una funcion dentro de otra

Jjajaja chispas,,, si q soy malo para explicar.. :S.

Si miren,, yo tengo una funcion la cual crea los n campos de textbox que yo quiera, entonces dentro de estos texbox, yo valido que escriban como minimo 2 numeros (que es la parte que muestro abajo)
function crearCampos(cantidad){
var input = document.createElement("<input onkeypress='return entero(event);' onchange='checa(this);checap999(crearemp);' style='background-color: #9EB9F8; color: #000000;'>");
Pero a la vez, valido que uno de los campos que creo con otra funcion contenga algun elemento numerico
function crearCampos(cantidad){
var input = document.createElement("<input onkeypress='return entero(event);' onchange=checa(this);checap999(crearemp);' style='background-color: #9EB9F8; color: #000000;'>");

Mi duda es aqui:
checap999(crearemp); es correcto lo que puse dentro de ese parentesis ?? , osea validar al salirme del textbox para pasarme a otro y validar si se hizo lo que pido en onchange ... ?

ya que la otra funcion es:
function crearemp(cantidad){var div = document.getElementById("campo_empleado");

Lo dibujare...

Tengo 2 funciones que al momento de que yo pongo una x cantidad me crea los textbox que yo coloque...

<script type="text/javascript">
function crearCampos(cantidad){
var div = document.getElementById("campos_dinamicos");
while(div.firstChild)div.removeChild(div.firstChil d); // remover elementos;
for(var i = 1, cantidad = Number(cantidad); i <= cantidad; i++){
var salto = document.createElement("P");
var input = document.createElement("input");
var input = document.createElement("<input onkeypress='return entero(event);' onchange='checa(this);checap999(crearemp);' style='background-color: #9EB9F8; color: #000000;'>");
var text = document.createTextNode("Autobùs " + i + ": ");
input.setAttribute("name", "campo" + i);
input.setAttribute("size", "6");
input.setAttribute("maxLength","6");
//input.setAttribute("onKeyUp", "contar(this.form)");
input.className = "input";
salto.appendChild(text);
salto.appendChild(input);
div.appendChild(salto);
}
}
</script>

<script type="text/javascript">
function crearemp(cantidad){
var div = document.getElementById("campo_empleado");
while(div.firstChild)div.removeChild(div.firstChil d); // remover elementos;
for(var i = 1, cantidad = Number(cantidad); i <= cantidad; i++){
var salto = document.createElement("P");
var input = document.createElement("input");
var input = document.createElement("<input onkeypress='return entero(event);' onchange='checaemp(this);' style='background-color: #9EB9F8; color: #000000;'>");
var text = document.createTextNode("Empleado " + i + ": ");
input.setAttribute("name", "emp" + i);
input.setAttribute("size", "6");
input.setAttribute("maxLength","6");
//input.setAttribute("onKeyUp", "contar(this.form)");
input.className = "input";
salto.appendChild(text);
salto.appendChild(input);
div.appendChild(salto);
}
}
</script>

si se ejucutara seria asi: coloco 2 texbox que me cree

------- (texbox de la funcion crearCampos) --------- (texbox de la funcion crearemp) <-- fila 1

------- (texbox de la funcion crearCampos) --------- (texbox de la funcion crearemp) <-- fila 2
Entonces lo que quiero es al momento de que me pase al textbox de la fila 2 de crearCampos valide que la funcion crearemp del texbox de la fila 1 tenga una valor numerico...

Entonces lo que quiero saber es como meto en el onchange mi funcion que ya tengo(1) que valida que tenga algo escrito dentro de la funcion crearemp..


//////////////////////////////////////////
(1) funcion que ya tengo:

function checap999(obj){
var obten="<?php echo $fila_emp['P999']?>";
if (obten==3){
alert("El campo empleado debe contener su Nùmero");
obj.value="";
obj.focus();
obj.select();
}

}

//////////////////////////////////////

osea si esta bien escrito asi:

var input = document.createElement("<input onkeypress='return entero(event);' onchange=checa(this);checap999(crearemp);'

ya que no me corre eso,,, talvez estoy manando a llamar mal la funcion crearemp,, o como se escribe?
  #5 (permalink)  
Antiguo 01/10/2010, 23:37
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: Validar una funcion dentro de otra

esta peor que antes dejando ese hecho a un lado y basandonos en que quieres validar el contenido, entonces debes invocar la funcion que realiza la validacion -en tu caso checap999- y pasarle como argumento la referencia del campo. para ello, haces lo mismo como has hecho con la funcion checa, le pasas el valor this. tal como lo tienes, estas pasando la referencia de una funciona -crearemp- el cual produce error porque la funcion no contiene los metodos invocados en checap999.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: funcion
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 23:32.