Foros del Web » Programando para Internet » Jquery »

Capturar el valor devuelto por una función anonima en jquery

Estas en el tema de Capturar el valor devuelto por una función anonima en jquery en el foro de Jquery en Foros del Web. Hola, mi problema consiste en que he creado una función jquery para validar formularios de forma dinámica, esta función recibe el id del formulario en ...
  #1 (permalink)  
Antiguo 23/02/2010, 11:11
 
Fecha de Ingreso: octubre-2008
Ubicación: Plasencia
Mensajes: 109
Antigüedad: 16 años, 1 mes
Puntos: 6
Capturar el valor devuelto por una función anonima en jquery

Hola, mi problema consiste en que he creado una función jquery para validar formularios de forma dinámica, esta función recibe el id del formulario en cuestión y recorre todos sus campos mediante la función each de jquery comprobando que los campos requeridos no estén vacios, el problema es que en dicha función each declaro una función anonima para realizar las comprobaciones pertinentes sobre el campo y al terminar el each no sé como obtener el valor devuelto por esta función para que la función de validación devuelva el valor que corresponda.

Os muestro el código:

Código Javascript:
Ver original
  1. function validarFormulario(idform)
  2. {
  3.     $("#"+idform+" :input").each(
  4.         function(){
  5.                         // esta es la funcion anonima
  6.             field = $(this);
  7.             if(field.attr("required")=="true" && field.val()==''){
  8.                 alert("El campo "+field.attr("id")+" es requerido");                       
  9.                 field.focus();
  10.                 return(false);
  11.             }
  12.         }
  13.     );
  14.     // aqui necesito saber el valor devuelto por la función anonima para devolver true o false segun corresponda.
  15. }
  #2 (permalink)  
Antiguo 23/02/2010, 13:38
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: Capturar el valor devuelto por una función anonima en jquery

No creo que sea necesario declarar una funcion anonima. Podes borrarla y usar el codigo sin encapsular.

En cuanto a devolver algo... quizas lo mejor sea almacenar los valores en una variable. O si quisieras, en un array.
  #3 (permalink)  
Antiguo 02/03/2010, 05:45
 
Fecha de Ingreso: octubre-2008
Ubicación: Plasencia
Mensajes: 109
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Capturar el valor devuelto por una función anonima en jquery

Lo que dices no es posible ya que la función each de jquery requiere que el código a ejecutar en cada iteración del bucle sea incluido dentro de una función anónima que será pasada como parametro a la función each(). Lo que he hecho ha sido sustituir la función each por un recorrido del array de elementos por el metodo tradicional para evitarme este problema ya que por ahora no he encontrado la manera de hacer lo que pretendía.
  #4 (permalink)  
Antiguo 02/03/2010, 06:54
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 11 meses
Puntos: 65
Respuesta: Capturar el valor devuelto por una función anonima en jquery

usa una bandera

function validarFormulario(idform)
{

//inicio bandera en true
var bandera = true;

$("#"+idform+" :input").each(
function(){
// esta es la funcion anonima
field = $(this);
if(field.attr("required")=="true" && field.val()==''){
alert("El campo "+field.attr("id")+" es requerido");
field.focus();
//Si hay error seteo bandera a false
var bandera = false;
return(false);
}
}
);

//Devuelvo bandera que puede ser true o false
return bandera;
}

entonces si

if (validarFormulario("idform")){
//formulario sin error
} else {
//formulario con error
}

Etiquetas: javascript
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 06:40.