Foros del Web » Programando para Internet » Jquery »

Validar campos a medida que se activen divs

Estas en el tema de Validar campos a medida que se activen divs en el foro de Jquery en Foros del Web. Buenas tardes..! Les queria hacer la siguiente consulta.! Yo tengo 2 funciones js, una que es para ocultar/mostrar divs y otra q es para validar ...
  #1 (permalink)  
Antiguo 27/03/2013, 09:51
 
Fecha de Ingreso: agosto-2010
Mensajes: 1
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Validar campos a medida que se activen divs

Buenas tardes..!

Les queria hacer la siguiente consulta.!

Yo tengo 2 funciones js, una que es para ocultar/mostrar divs y otra q es para validar el formulario..

Lo que yo oculto y muestro son campos del formulario, para serle mas explicito es un formulario de compra y los divs ocultan cantidad de productos.. dependiendo de la cantidad de productos que elijan es la cantidad de campos que aparecen..

para ello utilizo este script
Código:
    <script type="text/javascript">
function mostrardiv(Cantidad) 
{ 

  for(i=1;i<=10;i++) 
  { 
     document.getElementById('div_'+i).style.display = 'none'; 
   
     if(i<=Cantidad) 
     { 
        document.getElementById('div_'+i).style.display = 'block'; 
     } 
  } 
}  
</script>
y para validar los formularios utilizo
Código:
$(function() {
var emailreg = /^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/;
var numreg = /^(\d{0,9})$/;
var letreg = /^[A-Za-z]+$/;
var pwreg = /(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,20})$/;

var namereg = /^[A-Z]+[a-z]+ [A-Z]+[a-z]/;
  $('.error').hide();
  $('input.form-poshytip').css({backgroundColor:"#FFFFFF"});
  $('input.form-poshytip').focus(function(){
    $(this).css({backgroundColor:"#cFF"});
  });
  $('select.form-poshytip').focus(function(){
    $(this).css({backgroundColor:"#cFF"});
  });
    $('input.form-poshytip').error(function(){
    $(this).css({backgroundColor:"#f99"});
  });
    $('select.form-poshytip').blur(function(){
    $(this).css({backgroundColor:"#FFFFFF"});
  });
  $('input.form-poshytip').blur(function(){
    $(this).css({backgroundColor:"#FFFFFF"});
  });
  
	 $("#name, #dni, #pais, #mail1, #mail2, #prov, #ciudad, #pw, #hname, #rcon").keyup(function(){
		if( $(this).val() != "lkkjaswjasdASWASDjuiquansuqw213ADW23ad" ){
			$(".error").fadeOut();			
			return false;
		}
	 });
	 	 $("#reppw").keyup(function(){
		if( $(this) != "lkkjaswjasdASWASDjuiquansuqw213ADW23ad" ){
			$(".error").fadeOut();			
			return false;
		}
	 });
	 
  $(".button").click(function() {
		// validate and process form
		// first hide any error messages
    $('.error').hide();
		
	  var name = $("input#name").val();
		if (name == "") {
      $("label#name_error").show();
      $("input#name").focus();
      return false;
    }
	var dni = $("input#dni").val();
		if (dni == "") {
      $("label#dni_error").show();
      $("input#dni").focus();
      return false;
    }
	var dni = $("input#dni").val();
		if (!numreg.test($("#dni").val())) {
      $("label#dni2_error").show();
      $("input#dni").focus();
      return false;
    }
		var mail1 = $("input#mail1").val();
		if (mail1 == "") {
      $("label#mail1_error").show();
      $("input#mail1").focus();
      return false;
    }
		var mail1 = $("input#mail1").val();
		if (!emailreg.test($("#mail1").val())) {
      $("label#mail12_error").show();
      $("input#mail1").focus();
      return false;
    }
	var mail2 = $("input#mail2").val();
		if (mail2 == "") {
      $("label#mail2_error").show();
      $("input#mail2").focus();
      return false;
    }
	var mail2 = $("input#mail2").val();
		if (!emailreg.test($("#mail2").val())) {
      $("label#mail22_error").show();
      $("input#mail2").focus();
      return false;
    }
	var mail2 = $("input#mail2").val();
		if (mail2 == mail1) {
      $("label#mail23_error").show();
      $("input#mail2").focus();
      return false;
    }
	var pais = $("input#pais").val();
		if (pais == "") {
      $("label#pais_error").show();
      $("input#pais").focus();
      return false;
    }
	var prov = $("input#prov").val();
		if (prov == "") {
      $("label#prov_error").show();
      $("input#prov").focus();
      return false;
    }
	var ciudad = $("input#ciudad").val();
		if (ciudad == "") {
      $("label#ciudad_error").show();
      $("input#ciudad").focus();
      return false;
    }
		var pw = $("input#pw").val();
		if (pw == "") {
      $("label#pw_error").show();
      $("input#pw").focus();
      return false;
    }
		var pw = $("input#pw").val();
		if (!pwreg.test($("#pw").val())) {
      $("label#pw2_error").show();
      $("input#pw").focus();
      return false;
    }
		var reppw = $("input#reppw").val();
		if (reppw == "" || pw != reppw) {
      $("label#reppw_error").show();
      $("input#reppw").focus();
      return false;
    }
		var hname = $("input#hname").val();
		if (hname == "") {
      $("label#hname_error").show();
      $("input#hname").focus();
      return false;
    }
		var slot = document.getElementById('slot').value;
		if (slot == "") {
      $("label#slot_error").show();
      $("slot").focus();
      return false;
    }
		var rcon = $("input#rcon").val();
		
		if (rcon == pw) {
      $("label#rcon2_error").show();
      $("input#rcon").focus();
      return false;
    }
			var rcon = $("input#rcon").val();
		
		if (rcon == "") {
      $("label#rcon_error").show();
      $("input#rcon").focus();
      return false;
    }
	var pago = document.getElementById('pago').value;
		if (pago == "23") {
      $("label#pago_error").show();
      $("pago").focus();
      return false;
    }


		var dataString = 'name='+ name + '&dni=' + dni + '&mail1=' + mail1 + '&mail2=' + mail2 + '&pais=' + pais + '&prov=' + prov + '&ciudad=' + ciudad + '&pw=' + pw + '&reppw=' + reppw + '&hname=' + hname + '&slot=' + slot + '&rcon=' + rcon + '&pago=' + pago ;
		//alert (dataString);return false;
		
		$.ajax({
      type: "POST",
      url: "js2/process.php",
      data: dataString,
      success: function() {
        $('#compra_form').html("<div id='message'></div>");
        $('#message').html("<div align='center'><img id='checkmark' src='images/check.png' /> Su pedido fue enviado. En instantes recibiras la boleta para que pueda realizar el pago.</div>")
        .append("")
        .hide()
        .fadeIn(1500, function() {
          $('#message').append("");
        });
      }
     });
    return false;
	});
});
runOnLoad(function(){
  $("input#name").select().focus();
});
lo que necesito realizar es validar los campos a medida que el cliente valla activando los productos, es decir que si elije como cantidad 2 productos solo valide y haga obligatorios los campos para esos 2 productos.. y el resto no porque estan ocultos..
  #2 (permalink)  
Antiguo 02/04/2013, 10:21
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Validar campos a medida que se activen divs

Hola buenas

No he tenido tiempo de mirarme con detalle tu código porque es bastante extenso y no veo donde le dices que valide 1 formulario u otro. A no ser que hayas repetido los IDs en todos los formularios lo cuál no sería correcto.

De todas formas, por si te es de ayuda, una posible opción sería antes comprobar que document.getElementById('div_'+i).style.display == "block" con lo cuál sabes que no está oculto y que debe validarlo. Si está oculto es == a none, por tanto no entraría en el IF y no lo validaría.

Saludos

Etiquetas: ajax, campos, divs, formulario, funcion, html, input, javascript, js, php, select
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 00:36.