Foros del Web » Programando para Internet » Javascript » Frameworks JS »

añadir reglas dinamicamente al cargar con ajax

Estas en el tema de añadir reglas dinamicamente al cargar con ajax en el foro de Frameworks JS en Foros del Web. Hola a tod@s, estoy haciendo un formulario de alta de unas galerías de fotos, desde dónde se pueden subir fotos para mostrar a los clientes, ...
  #1 (permalink)  
Antiguo 26/05/2012, 02:17
 
Fecha de Ingreso: mayo-2010
Mensajes: 103
Antigüedad: 14 años, 6 meses
Puntos: 4
añadir reglas dinamicamente al cargar con ajax

Hola a tod@s, estoy haciendo un formulario de alta de unas galerías de fotos, desde dónde se pueden subir fotos para mostrar a los clientes, para ello deben de tener un nombre de usuario y una contraseña. Bien esto en principio lo hacen desde 2 menús diferentes, uno para el alta de la galería y otro para el alta de los usuarios, pero se me ha ocurrido que podría poner un botón que despliegue una capa oculta y cargue mediante ajax un página con los inputs para el usuario, hasta aquí todo bien, pero el formulario tiene una validación con jquery, del tipo:

Código:
$("#AltaGaleria").validate({
	rules: {
		nombre:{
			required: true,
			minlength: 4,
			remote: "names.php"
		},
		carpeta:{
			required: true,
			minlength: 5,
			remote:"carpetas.php"
		}
	},
	messages:{
		nombre:{
			required: "El nombre de carpeta es obligatorio",
			minlength: "El nombre debe tener como mínimo 4 caracteres",
			remote: "Este nombre ya existe, por favor escriba otro"
		},
		carpeta:{
			required: "La carpeta principal es obligatoria",
			minlength: "La carpeta principal debe contener como mínimo 5 caracteres",
			remote: "Esta carpeta ya existe para otra galería, por favor escriba otra."
		}
	}
});
La llamada ajax la hago de la siguiente forma:
Código:
$('.ajaxUser').click(function() {
	$('a.selected1').removeClass('selected1');
	$(this).addClass('selected1');
	$('#altaUser').hide();
	$.ajax({  
		url: $(this).attr('enlace') ,  
		success: function(data) {  
			$('#altaUser').html(data);  
			$('#altaUser').slideDown(1000);
		},
	});
});
y en el enlace tengo:

Código HTML:
<p><a href="#" class="ajaxUser" enlace="datauser.php">Dar de alta un Usuario ahora</a></p> 
Bueno todo esto, como digo funciona correctamente, pero quiero que cuando haga click en el enlace, además de mostrar los campos del usuario (datauser.php) añada las reglas de validación correspondiente, y no se como hacerlo, he intentado añadirlas mediante algo así:

Código:
$('#usuario').rules("add", "required");
dentro de la función click, pero no funciona. Alguien me dice que y dónde debo ponerlo.

Gracias
__________________
salud
ainvar de los carnutos
  #2 (permalink)  
Antiguo 26/05/2012, 02:30
 
Fecha de Ingreso: mayo-2010
Mensajes: 103
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: añadir reglas dinamicamente al cargar con ajax

Ya encontré la solución, era bien sencilla, pero cuando uno se obceca, pues eso. En el script datauser.php, se añade lo siguiente:

Código:
<script>
$(document).ready(function(){
	$("#usuario").rules("add", {
		required: true,
		minlength: 4,
	messages: {
		required: "El usuario es obligatorio",
		minlength: jQuery.format("Por lo menos {0} caracteres son necesarios")
	}
	});
});
</script>
et voilá, el campo se valida.

Gracias y perdón por lñas molestias.
__________________
salud
ainvar de los carnutos
  #3 (permalink)  
Antiguo 26/05/2012, 11:05
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: añadir reglas dinamicamente al cargar con ajax

En caso de tener tu js y css en archivos externos, podés hacerlo de esta manera

http://foros.emprear.com/ajax/html-css-js-ajax/
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: jquery
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 09:21.