$(function(){ ieTuning(); $("#mensajes ul").innerfade({speed: 'fast', timeout: '5000'}); tematica(); comboProvincias(); valida(); }); function ieTuning(){ $(':input[type]').each(function(){ $(this).addClass($(this).attr('type')); }); $('li:first, td:first',$('ul, ol, tr')).addClass('first'); }; function tematica(){ $('#signup_estudios').change(function(){ //option del value seleccionado var option = $('option[value="'+$(this).val()+'"]',this); //si selecciono algun valor, despliego corrspondiente if ($('.tematica').is(':visible') && $(this).val() == ''){ $('.tematica > label, .tematica select:visible').slideUp(); } else{ $('.tematica > label, .tematica select').slideDown(); //reseteo selects $('.tematica select').val(''); $('#signup_subtematica').attr('disabled','disabled').find('option:first').text("-- Selecciona primero una temática --"); } }); //poner a disabled la subtemática hasta que no se eliga temática $('#signup_subtematica').attr('disabled','disabled').find('option:first').text("-- Selecciona primero una temática --"); $('#signup_tematica').change(function(){ if ($(this).val() != '') { $('#signup_subtematica').removeAttr('disabled').find('option:first').text("-- Seleccionar --"); } else { $('#signup_subtematica').attr('disabled','disabled').val('').find('option:first').text("-- Selecciona primero una temática --"); } }); }; function comboProvincias(){ $('#signup_pais').change(function(){ if ($(this).val() != -1) $('#provincia').slideDown(); else $('#provincia').slideUp(); }); }; function validaMail(valor) { return (/^\w+([\.-]?\w*)*@\w+([\.-]?\w*)*(\.\w{2,3})+$/).test(valor); }; function valida(){ var mensaje = "Debe rellenar correctamente los campos indicados en rojo"; var error; $('form').submit(function(){ error = 0; $('p.error').remove(); $('.error').removeClass('error'); //recorro todos los elementos de formulario susceptibles a ser validados $(':text,select,:password',this).each(function(){ //validaciones genericas if ($(this).val() == '' && $(this).parent('div').is(':visible')){ //esta ultima condicion es para provincia error = 1; $(this).addClass('error'); $('label[for="'+$(this).attr('id')+'"]').addClass('error'); } else if ($(this).hasClass('mail')){ //mail if (!validaMail($(this).val())) { error = 1; $(this).addClass('error'); $('label[for="'+$(this).attr('id')+'"]').addClass('error'); } } }); if (!$('#signup_uso').is(':checked') && $(this).is('#form-signup')){ //condiciones error = 1; $('label[for="signup_uso"]').addClass('error'); } if ($('div.checkbox-container').is(':visible') && $(this).is('#form-signup')){ //almenos escoger una opción if ($(':checkbox:checked',this).length < 1){ error = 1; $('label',$('div.checkbox-container')).addClass('error'); } } if (error){ //mensaje de error $(this).prepend('
'+mensaje+'
'); return false; } else return true; }); }