Vanadium: Validar formularios fácilmente

Vanadium es un plugin para jQuery que permite validar formularios de manera sencilla y con pocas lineas de código. Permite validar campos obligatorios, numéricos, email, entre otros.

Validar formularios es muy importante en las páginas para prevenir el ingreso de datos inválidos sin el formato adecuado. Obviamente estas validaciones deben estar acompañadas de una validación en el lado del servidor para tener una doble protección. Entonces Vanadium se encarga del proceso de validar formularios de manera sencilla y con una sintaxis muy sencilla de utilizar.

vanadium

Como utilizar Vanadium
Lo primero es descargar el script desde http://vanadiumjs.com/ en cualquiera de sus versiones: vanadium.js que contiene comentarios que puede usarse para editarlo o vanadium-min.js que esta comprimida para acelerar su carga.

Lo siguiente es incluir jQuery (en mi caso utilizare jQuery desde Google AJAX Libraries API) y Vanadium en el header de nuestro html para poder hacer uso de sus métodos.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="vanadium.js"></script>

Lo siguiente es agregar a los campos de nuestro formulario el tipo de validación que queremos aplicarlo, esto se hace agregando estilos a los campos. Algunos de los tipos de validación disponibles son:

  • :required el campo es obligatorio.
  • :integer se aceptan números enteros.
  • :float se aceptan números decimales.
  • :length;n el campo debe tener n caracteres.
  • :min_length;n se aceptan n caracteres como mínimo.
  • :max_length;n se aceptan n caracteres como máximo.
  • :accept el campo checkbox debe ser aceptado.
  • :email el dato debe ser un email.

Luego si por ejemplo tuviéramos un formulario de registro donde el campo de usuario y clave son obligatorios y además el campo email debe aceptar solamente datos del tipo email tendríamos:

<form method="post" action="">
   Username: 
   <input name="username" type="text" id="username" size="36" class=":required" />
   Password: 
   <input name="userpass" type="text" id="userpass" size="36" class=":required" />
   Email: 
   <input name="email" type="text" id="email" size="36" class=":email" />
   <input type="submit" name="btsend" id="btsend" value="Registro" />
</form>

Listo, ya tenemos nuestro formulario validado. Como pueden ver en el el ejemplo los campos se validan cuando se esta ingresando los datos. Ahora si se desea personalizar esta validación solo hace falta modificar los estilos de los mensajes de error y confirmación.

[download id=»24″ autop=»false»]

Comentarios Total 40 comentarios


[…] Vía unijimpe […]

Jorge
Publicado: 21/09/2009 1:41 pm

hola unijimpe, te la sacaste por la ventana con este aporte.

Me encantó el ejemplo. muchas gracias, de este modo le daré mas estilo a mi formulario. muchas gracias de nuevo.

Bye


[…] Como utilizar ‘Vanadium’, un javascript para validar formularios. – Vanadium: Validar formularios fácilmente […]

loli
Publicado: 21/09/2009 3:47 pm

Hola, muy bueno y muy bien explicado… pero cómo se podrían traducir los mensajes de validación que aparecen? en vandium.js no están. están en jquery?

unijimpe
Publicado: 21/09/2009 10:32 pm

Para modificar los mensajes de esta librería debes descargar la librería sin comprimir el cual esta en: http://github.com/lambder/Vanadium/raw/master/dist/vanadium.js.

Luego a partir de las linea 991 se encuentran los mensajes que se muestran en las validaciones, por ejemplo:


Vanadium.addValidatorTypes([
['equal', function(v, p) {
return v == p;
}, function (_v, p) {
return 'The value should be equal to ' + p + '.'
}],

loli
Publicado: 22/09/2009 2:43 pm

Bueno, lo he traducido parcialmente, por si alguien quiere seguir…

http://www.gigasize.com/get.php?d=fnooxjckgwc

Gracias unijimpe. pero la duda es… ahora se usa esta librería en el src del script?

Validar formularios fácilmente con jQuery
Publicado: 23/09/2009 2:59 pm

[…] pequeña lista de ejemplos en VanadiumJS puedes ver muchos otros, también puedes leer el artículo Vanadium: Validar formularios fácilmente Etiquetas:Formulario, Formularios, JavaScript, Javascripts, jQuery Descargar en PDFClic […]

Darwin
Publicado: 25/09/2009 12:04 pm

Hola amigos,alguien me puede ayudar?Perdonad mi franqueza pero yo soy nuevo en esto,y tengo únicamente el conocimiento básico,pero que muy básico (hasta hace 2 años nunca había tocado un ordenador en mi vida,ni siquiera para encenderlo),pues nunca le presté atención,por ignorancia.Y ahora a mis 30 años me ha captado mi atención y parezco un niño que nada sabe del tema pero lo quiere aprender todo…La cuestión es que hace un par de semanas creé mi primer Blog, http://darwinaprendiendounpoco.spaces.live.com/ para poner ahí mis vídeos de ensayo (porque también intento a aprender eso)de youtube y ya he conseguido poner unos cuantos,pero yo quiero presentarlos con otro reproductor,como por ejemplo «Windows Media Player»,pero con éste sólo he conseguido editar un vídeo,y en pantalla pequeña,no modificable.El resto de vídeos se visualizan con el reproductor predefinido de youtube y tampoco los puedo ver en pantalla completa.(Quizás porque copié el código de mis vídeos personalizados en you tube,para tener el marco del reproductor de diferentes colores»..no lo sé…pero yo quiero tener la opción de poder editar esos vídeos con otra configuración de tamaño,para poder verlos en pantalla «mini»(o mediano o grande)y tener la posibilidad de verlos también en pantalla completa,pero no lo consigo.Ahora intento hacerlo con «tubeplayer»,he seguido todos los pasos,y le asigné un host al archivo tubeplayer.swf ,y luego lo subí aquí: https://cid-994d4fa74c3a92a6.skydrive.live.com/browse.aspx/.SharedFavorites
También me he descargado el archivo «vanadium»,pero no sé cómo puedo ediralo y que funcione correctamente.Lo he hecho siguiendo toda ayuda que he podido encontrar por internet pero no lo consigo.Aquí os la muestro:

Y al editarlo en mi blog parece que sólo se ha memorizado la ruta del vídeo que puse en la edición,(con el reproductor predeterminado,claro está)..
Así que al entrar a mi blog se vé el vídeo con el código prácticamente superpuesto..,en fín,un estropicio para la vista…si entráis en mi blog lo veréis,pero ya os dije que esto he nuevo para mí… ^.^
Confío en la sabiduría de todos los entendidos en el tema para que me ayuden a corregir lo que está mal escrito en éste código para poder configurar correctamente el reproductor.
Muchas gracias por todo vuestro tiempo,espero una respuesta.
Darwin.

Darwin
Publicado: 25/09/2009 12:08 pm

Lo siento pero no me permite introducir el código para poder enseñaroslo :(
Como me podéis ayudar entonces??

Francisco
Publicado: 12/10/2009 11:48 am

JQuery se apodera del mercado.

open-pitu
Publicado: 14/10/2009 12:08 pm

Muchas gracias por este post, me ha gustado como lo has presentado, explicando las clases y su modo de uso, realemente muy interesante y útil. Así pues, me he decidido en «traducirlo» al catalán. Supongo que no es ningún inconveniente. De nuevo felicidades!!

Marc
Publicado: 04/11/2009 6:01 am

Pues no entiendo por que.. pero consigo hacer que funcione perfectamente toda la validación, pero con un caso muy extraño y es que no finaliza el submit…

cuando le doy al submit, procesa las validaciones pertinentes, pero no salta a la página indicada en el action…

A alguien mas le ha pasado?

Alfonso
Publicado: 05/11/2009 5:55 pm

a mi me paso lo mismo que a marc alguien tiene la solucion de por que no hace el enlace despues de poner submit

Juani
Publicado: 11/02/2010 1:54 pm

Hola! el Vanadium me ha sido de gran ayuda… Hubo un solo punto que no he entendido, no se como implementarlo. Es el del class=’:ajax;check.php’. Es decir, el formato Json, que comprueba en la base de datos si el nombre de usuario está o no tomado.
Me podrian dar una mano?
Alguno lo hizo?
Desde ya, muchas gracias!!!

francisco
Publicado: 05/05/2010 4:59 pm

Ya hago funcionar la valiacion,, mi pregunta es: como se hace para q salga el recuadro verde o rojo como en el ejemplo???

albert
Publicado: 13/05/2010 9:38 am

hola que tal quisiera saber si se pueden usr dos una un clas por ejemplo el :required y :email por ejemplo asi? class=»:required:email:required» oi de que forma_?? gracias

unijimpe
Publicado: 13/05/2010 10:54 am

Para aplicar varias reglas de validación al mismo campo del formulario debes colocarla una despues de otra separada por un espacio, por ejemplo si necesitas un campo email que sea obligatorio puedes hacerlo de la siguiente forma:

<input name="mail" type="text" class=":email :required"/>

Sebastian Sanabria
Publicado: 18/05/2010 11:04 am

Buenas tardes me gustaria saber cual de las funciones valida con espacio Ejemplo: nombre : Sebastian Sanabria, si lo meto asi ninguna funcion me deja pasar el nombre tiene q ser asi SebastianSanabria entonce me gustaria saber como hacer para agregar el espacio como un caracter valido

LordRalf
Publicado: 09/08/2010 7:53 am

Acá está el link para descargar la librería traducida al español
http://13deseptiembre.com.ar/blog/examples/vanadium/vanadium_es.rar

hunter_ass
Publicado: 19/08/2010 7:12 pm

Buen código, pero que sucede si no llenas el campo si defines una clase integer ???
Lo deja pasar igual.

O estoy equivocado.

unijimpe
Publicado: 19/08/2010 10:07 pm

Si solo pones que verifique :integer verificará que el valor ingresado (Si lo ingresas) es entero en caso contrario genera un error. Si no ingresas el valor no genera el error. Si deseas que ademas de ser entero debe ser obligatorio el campo debes utilizar:

<input type="text" class=":integer :required"/>

luisa
Publicado: 03/09/2010 5:36 pm

si funciona

luisa
Publicado: 03/09/2010 5:37 pm

Vanadium={};Vanadium.Version=»0.1″;Vanadium.CompatibleWithJQuery=»1.3.2″;Vanadium.Type=»jquery»;if($().jquery.indexOf(Vanadium.CompatibleWithJQuery)!=0&&window.console&&window.console.warn){console.warn(«This version of Vanadium is tested with jQuery «+Vanadium.CompatibleWithJQuery+» it may not work as expected with this version («+$().jquery+»)»)}Vanadium.each=$.each;Vanadium.all_elements=function(){return $(«*»)};Vanadium.partition=function(b,d){var c=[];var a=[];Vanadium.each(b,function(){if(d(this)){c.push(this)}else{a.push(this)}});return[c,a]};var HashMap=function(){this.initialize()};HashMap.prototype={hashkey_prefix:»»,hashcode_field:»»,hashmap_instance_id:0,initialize:function(){this.backing_hash={};this.code=0;this.hashmap_instance_id+=1;this.instance_id=this.hashmap_instance_id},hashcodeField:function(){return this.hashcode_field+this.instance_id},put:function(b,d){var c;if(b&&d){var a;if(typeof(b)===»number»||typeof(b)===»string»){a=b}else{a=b[this.hashcodeField()]}if(a){c=this.backing_hash[a]}else{this.code+=1;a=this.hashkey_prefix+this.code;b[this.hashcodeField()]=a}this.backing_hash[a]=[b,d]}return c===undefined?undefined:c[1]},get:function(b){var c;if(b){var a;if(typeof(b)===»number»||typeof(b)===»string»){a=b}else{a=b[this.hashcodeField()]}if(a){c=this.backing_hash[a]}}return c===undefined?undefined:c[1]},del:function(b){var d=false;if(b){var a;if(typeof(b)===»number»||typeof(b)===»string»){a=b}else{a=b[this.hashcodeField()]}if(a){var c=this.backing_hash[a];this.backing_hash[a]=undefined;if(c!==undefined){b[this.hashcodeField()]=undefined;d=true}}}return d},each:function(c,a){var b;for(b in this.backing_hash){if(c.call(this.backing_hash[b][1],this.backing_hash[b][0],this.backing_hash[b][1])===false){break}}return this},toString:function(){return»HashMapJS»}};Vanadium.containers=new HashMap();var ContainerValidation=function(a){this.initialize(a)};ContainerValidation.prototype={initialize:function(a){this.html_element=a;this.elements=[]},add_element:function(a){this.elements.push(a)},decorate:function(){var a=null;for(var b in this.elements){if(this.elements[b].invalid===undefined){a=undefined}else{if(this.elements[b].invalid===true){a=false;break}else{if(this.elements[b].invalid===false&&a===null){a=true}}}}if(a===undefined){$(this.html_element).removeClass(Vanadium.config.invalid_class);$(this.html_element).removeClass(Vanadium.config.valid_class)}else{if(a){$(this.html_element).removeClass(Vanadium.config.invalid_class);$(this.html_element).addClass(Vanadium.config.valid_class)}else{$(this.html_element).removeClass(Vanadium.config.valid_class);$(this.html_element).addClass(Vanadium.config.invalid_class)}}}};var VanadiumForm=function(a){this.initialize(a)};Vanadium.forms=new HashMap();VanadiumForm.add_element=function(b){var c=b.element.form;if(c){var a=Vanadium.forms.get(c);if(a){a.validation_elements.push(b)}else{a=new VanadiumForm(b);Vanadium.forms.put(c,a)}}};VanadiumForm.prototype={initialize:function(a){this.validation_elements=[a];this.form=a.element.form;var b=this;$(this.form).submit(function(){var c=b.validate();var d=true;c.each(function(f,e){for(var g in e){if(e[g].success==false){d=false;break}}if(d==false){return false}});if(!d){b.decorate();return false}});this.form.decorate=function(){b.decorate()}},validate:function(){var a=new HashMap();Vanadium.each(this.validation_elements,function(){a.put(this,this.validate())});return a},decorate:function(a){if(arguments.length==0){a=this.validate()}a.each(function(b,c){b.decorate(c)})}};Vanadium.validators_types={};Vanadium.elements_validators_by_id={};Vanadium.created_advices=[];Vanadium.config={valid_class:»vanadium-valid»,invalid_class:»vanadium-invalid»,message_value_class:»vanadium-message-value»,advice_class:»vanadium-advice»,prefix:»:»,separator:»;»,reset_defer_timeout:100};Vanadium.empty_advice_marker_class=»-vanadium-empty-advice-«;Vanadium.rules={};Vanadium.init=function(){this.setupValidatorTypes();this.scan_dom()};Vanadium.addValidatorType=function(c,a,b,d,e){this.validators_types[c]=new Vanadium.Type(c,a,b,d,e)};Vanadium.addValidatorTypes=function(b){var a=this;Vanadium.each(b,function(){Vanadium.addValidatorType.apply(a,this)})};Vanadium.scan_dom=function(){Vanadium.each(Vanadium.all_elements(),function(b,d){var c=d.className.split(» «);if(Vanadium.is_input_element(d)){var a=new ElementValidation(d);if(d.id){Vanadium.elements_validators_by_id[d.id]=a}VanadiumForm.add_element(a);Vanadium.each(c,function(){var e=Vanadium.parse_class_name(this);if(e){Vanadium.add_validation_instance(a,e);Vanadium.add_validation_modifier(a,e)}});Vanadium.each(Vanadium.get_rules(d.id),function(){var e=this;if(e){Vanadium.add_validation_instance(a,e);Vanadium.add_validation_modifier(a,e)}});a.setup()}else{Vanadium.add_validation_container(d)}})};Vanadium.add_validation_container=function(a){var b=a.className.split(» «);Vanadium.each(b,function(){var c=Vanadium.parse_class_name(this);if(c[0]==»container»){Vanadium.containers.put(a,new ContainerValidation(a));return true}});Vanadium.each(Vanadium.get_rules(a.id),function(){var c=this;if(c==»container»){Vanadium.containers.put(a,new ContainerValidation(a));return true}})};Vanadium.get_rules=function(a){var d=function(f){if(typeof f===»string»){return[f]}else{if(Vanadium.isArray(f)){return f}else{if(typeof(f)===»object»){return[f.validator,f.parameter,f.advice]}else{return undefined}}}};var e=[];var b=Vanadium.rules[a];if(typeof b===»undefined»){return[]}else{if(typeof b===»string»){e.push(b)}else{if(Vanadium.isArray(b)){for(var c in b){e.push(d(b[c]))}}else{if(typeof(b)===»object»){e.push(d(b))}}}}return e};Vanadium.parse_class_name=function(c){if(c.indexOf(Vanadium.config.prefix)==0){var a=c.substr(Vanadium.config.prefix.length).split(Vanadium.config.separator);for(var b in a){if(a[b]==»»){a[b]=undefined}}return a}else{return[]}};Vanadium.add_validation_instance=function(a,e){var d=e[0];var f=e[1];var b=e[2];var c=Vanadium.validators_types[d];if(c){a.add_validation_instance(c,f,b)}};Vanadium.add_validation_modifier=function(a,d){var c=d[0];var b=d[1];if(c==»only_on_blur»||c==»only_on_submit»||c==»wait»||c==»advice»){a.add_validation_modifier(c,b)}};Vanadium.validate=function(){var a=new HashMap();Vanadium.each(this.elements_validators,function(){a.put(this.element,this.validate())});return a};Vanadium.decorate=function(b){if(typeof b===»object»){if(b.toString()==»HashMapJS»){b.each(function(d,e){d.decorate(e)})}else{var a;for(a in b){var c=Vanadium.elements_validators_by_id[a];if(c){c.decorate(b[a])}}}}};Vanadium.reset=function(){Vanadium.each(this.elements_validators,function(){this.reset()})};Vanadium.isArray=function(a){return a!=null&&typeof a==»object»&&»splice» in a&&»join» in a};Vanadium.isFunction=function(a){return a!=null&&a.toString()===»[object Function]»};Vanadium.extend=function(c){var b=[Vanadium];for(var a=0;a0){this.invalid=true;Vanadium.addValidationClass(this.element,false)}else{if(e.length>0&&!this.invalid){this.invalid=false;Vanadium.addValidationClass(this.element,true)}else{this.invalid=undefined}}this.element_containers().each(function(h,g){g.decorate()});Vanadium.each(a,function(h,j){var i=undefined;if(c.advice_id){i=document.getElementById(c.advice_id)}if(i||j.advice_id){i=i||document.getElementById(j.advice_id);if(i){$(i).addClass(Vanadium.config.advice_class);var g=i.childNodes.length==0;if(g||$(i).hasClass(Vanadium.empty_advice_marker_class)){$(i).addClass(Vanadium.empty_advice_marker_class);$(i).append(«»+j.message+»»)}$(i).show()}else{i=c.create_advice(j)}}else{i=c.create_advice(j)}Vanadium.addValidationClass(i,false)})},validateAndDecorate:function(){if(!this.virgin){this.decorate(this.validate(this,this.decorate))}},create_advice:function(b){var a=document.createElement(«span»);this.created_advices.push(a);$(a).addClass(Vanadium.config.advice_class);$(a).html(b.message);$(this.element).after(a);return a},reset:function(){this.invalid=undefined;var b=document.getElementById(this.advice_id);if(b){if($(b).hasClass(Vanadium.empty_advice_marker_class)){$(b).empty()}$(b).hide()}Vanadium.each(this.validations,function(){var c=document.getElementById(this.adviceId);if(c){if($(c).hasClass(Vanadium.empty_advice_marker_class)){$(c).empty()}$(c).hide()}});var a=this.created_advices.pop();while(!(a===undefined)){$(a).remove();a=this.created_advices.pop()}Vanadium.removeValidationClass(this.element)},deferValidation:function(){if(this.wait>=300){this.reset()}var a=this;if(a.timeout){clearTimeout(a.timeout)}a.timeout=setTimeout(function(){$(a.element).trigger(«validate»)},a.wait)},deferReset:function(){var a=this;if(a.reset_timeout){clearTimeout(a.reset_timeout)}a.reset_timeout=setTimeout(function(){a.reset()},Vanadium.config.reset_defer_timeout)},setup:function(){var a=this;this.elementType=Vanadium.getElementType(this.element);this.form=this.element.form;this.element_containers();if(!this.only_on_submit){this.observe();$(a.element).bind(«validate»,function(){a.validateAndDecorate.call(a)});$(a.element).bind(«defer_validation»,function(){a.deferValidation.call(a)});$(a.element).bind(«reset»,function(){a.reset.call(a)})}},observe:function(){var c=this.element;var b=Vanadium.getElementType(c);var a=this;$(c).focus(function(){a.virgin=false});switch(b){case Vanadium.CHECKBOX:$(c).click(function(){a.virgin=false;$(a.element).trigger(«validate»)});break;case Vanadium.SELECT:case Vanadium.FILE:$(c).change(function(){$(c).trigger(«validate»)});break;default:$(c).keydown(function(d){if(d.keyCode!=9){$(c).trigger(«reset»)}});if(!this.only_on_blur){$(c).keyup(function(d){if(d.keyCode!=9){$(c).trigger(«defer_validation»)}})}$(c).blur(function(){$(c).trigger(«validate»)})}}};var Validation=function(c,a,d,b){this.initialize(c,a,d,b)};Validation.prototype={initialize:function(d,a,e,c){this.element=d;this.validation_type=a;this.param=e;this.adviceId=c;var b=document.getElementById(c);if(b){$(b).addClass(Vanadium.config.advice_class)}if(this.validation_type.init){this.validation_type.init(this)}},emmit_message:function(a){if(typeof(a)===»string»){return a}else{if(typeof(a)===»function»){return a.call(this,$(this.element).val(),this.param)}}},validMessage:function(){return this.emmit_message(this.validation_type.validMessage())||»ok»},invalidMessage:function(){return this.emmit_message(this.validation_type.invalidMessage())||»error»},test:function(a,b){return this.validation_type.validationFunction.call(this,$(this.element).val(),this.param,this,a,b)},validate:function(b,d){var a={success:false,message:»Received invalid return value.»};var c=this.test(b,d);if(typeof c===»boolean»){return{success:c,advice_id:this.adviceId,message:(c?this.validMessage():this.invalidMessage())}}else{if(typeof c===»object»){$.extend.apply(a,c)}}return a}};Vanadium.Type=function(c,a,b,d,e){this.initialize(c,a,b,d,e)};Vanadium.Type.prototype={initialize:function(c,a,b,d,e){this.className=c;this.message=d;this.error_message=b;this.validationFunction=a;this.init=e},test:function(a){return this.validationFunction.call(this,a)},validMessage:function(){return this.message},invalidMessage:function(){return this.error_message},toString:function(){return»className:»+this.className+» message:»+this.message+» error_message:»+this.error_message},init:function(a){if(this.init){this.init(a)}}};Vanadium.setupValidatorTypes=function(){Vanadium.addValidatorType(«empty»,function(a){return((a==null)||(a.length==0))});Vanadium.addValidatorTypes([[«equal»,function(a,b){return a==b},function(a,b){return’The value should be equal to ‘+b+».»}],[«equal_ignore_case»,function(a,b){return a.toLowerCase()==b.toLowerCase()},function(a,b){return’The value should be equal to ‘+b+».»}],[«required»,function(a){return !Vanadium.validators_types.empty.test(a)},»Este es un campo requerido»],[«accept»,function(b,a,c){return c.element.checked},»Must be accepted!»],[«integer»,function(a){if(Vanadium.validators_types.empty.test(a)){return true}var b=parseFloat(a);return(!isNaN(b)&&b.toString()==a&&Math.round(b)==b)},»Por favor, introduzca un numero entero valido en este campo.»],[«number»,function(a){return Vanadium.validators_types.empty.test(a)||(!isNaN(a)&&!/^\s+$/.test(a))},»Por favor, introduzca un numero valido en este campo.»],[«float»,function(a){return Vanadium.validators_types.empty.test(a)||(!isNaN(a)&&!/^\s+$/.test(a))},»Por favor, introduzca un numero valido en este campo.»],[«digits»,function(a){return Vanadium.validators_types.empty.test(a)||!/[^\d]/.test(a)},»Por favor, utilice solo numeros en este campo. Por favor, evite espacios u otros caracteres como puntos o comas.»],[«alpha»,function(a){return Vanadium.validators_types.empty.test(a)||/^[a-zA-Z\u00C0-\u00FF\u0100-\u017E\u0391-\u03D6]+$/.test(a)},»Por favor, use solo letras en este ambito.»],[«asciialpha»,function(a){return Vanadium.validators_types.empty.test(a)||/^[a-zA-Z]+$/.test(a)},»Por favor, use solo letras ASCII (a-z) en este campo.»],[«alphanum»,function(a){return Vanadium.validators_types.empty.test(a)||!/\W/.test(a)},»Por favor, use solo letras (az) o numeros (0-9) solo en este ambito. Sin espacios en blanco u otros caracteres se permiten.»],[«date»,function(a){var b=new Date(a);return Vanadium.validators_types.empty.test(a)||!isNaN(b)},»Por favor, introduzca una fecha valida.»],[«email»,function(a){return(Vanadium.validators_types.empty.test(a)||/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(a))},»Por favor, introduzca una direccion de correo electronico valida. Por ejemplo ejemplo@dedydamy.com .»],[«url»,function(a){return Vanadium.validators_types.empty.test(a)||/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(a)},»Por favor, introduzca una URL valida.»],[«date_au»,function(a){if(Vanadium.validators_types.empty.test(a)){return true}var b=/^(\d{2})\/(\d{2})\/(\d{4})$/;if(!b.test(a)){return false}var c=new Date(a.replace(b,»$2/$1/$3″));return(parseInt(RegExp.$2,10)==(1+c.getMonth()))&&(parseInt(RegExp.$1,10)==c.getDate())&&(parseInt(RegExp.$3,10)==c.getFullYear())},»Por favor, utilice este formato de fecha: dd / mm / aaaa. Por ejemplo 20/10/1995 para el 20 de octubre 1995.»],[«currency_dollar»,function(a){return Vanadium.validators_types.empty.test(a)||/^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(a)},»Por favor ingrese una cantidad valida $. Por ejemplo $ 100.00.»],[«selection»,function(a,b){return b.options?b.selectedIndex>0:!Vanadium.validators_types.empty.test(a)},»Por favor haga una seleccion»],[«one_required»,function(a,c){var b=$$(‘input[name=»‘+c.name+'»]’);return some(b,function(d){return getNodeAttribute(d,»value»)})},»Por favor, seleccione una de las opciones anteriores.»],[«length»,function(a,b){if(b===undefined){return true}else{return a.length==parseInt(b)}},function(a,b){return’El valor debe ser ‘+b+» caracteres de largo.»}],[«min_length»,function(a,b){if(b===undefined){return true}else{return a.length>=parseInt(b)}},function(a,b){return’El valor debe ser de al menos ‘+b+» caracteres de largo.»}],[«max_length»,function(a,b){if(b===undefined){return true}else{return a.length<=parseInt(b)}},function(a,b){return'El valor debe ser mayor ‘+b+» caracteres de largo.»}],[«same_as»,function(b,c){if(c===undefined){return true}else{var a=document.getElementById(c);if(a){return b==a.value}else{return false}}},function(b,c){var a=document.getElementById(c);if(a){return’El valor debe ser el mismo que ‘+($(a).attr(«name»)||a.id)+» .»}else{return»No hay tema ejemplar!!!»}},»»,function(b){var a=document.getElementById(b.param);if(a){$(a).bind(«validate»,function(){$(b.element).trigger(«validate»)})}}],[«ajax»,function(a,d,c,b,e){if(Vanadium.validators_types.empty.test(a)){return true}if(b&&e){$.getJSON(d,{value:a,id:c.element.id},function(f){e.apply(b,[[f],true])})}return true}],[«format»,function(b,e){var g=e.split(«/»);if(g.length==3&&g[0]==»»){var d=g[1];var a=g[2];try{var f=new RegExp(d,a);return f.test(b)}catch(c){return false}}else{return false}},function(a,b){var c=b.split(«/»);if(c.length==3&&c[0]==»»){return’El valor debe coincidir con el ‘+b.toString()+» patron.»}else{return’parametro siempre ‘+b.toString()+» no es valido patron de expresion regular.»}}]]);if(typeof(VanadiumCustomValidationTypes)!==»undefined»&&VanadiumCustomValidationTypes){Vanadium.addValidatorTypes(VanadiumCustomValidationTypes)}};$(document).ready(function(){if(typeof(VanadiumConfig)===»object»&&VanadiumConfig){Vanadium.each(VanadiumConfig,function(b,a){Vanadium.config[b]=a})}if(typeof(VanadiumRules)===»object»&&VanadiumRules){Vanadium.each(VanadiumRules,function(b,a){Vanadium.rules[b]=a})}Vanadium.init()});

luisa
Publicado: 03/09/2010 5:39 pm

Comentarios –

<?
function e($e){
$e = nl2br(htmlentities($e));
$e = stripslashes($e);
return $e ;
}
if ($_POST[comentar]){
$nombre=e($_POST[nombre]);
$comentario=e($_POST[comentario]);
if($nombre == ""){
$nombre="Anonimo";
}
$fecha=date("(D/M/Y) (H:I)");
$error="Comentario Publicado.";
$archivo2 = "comentarios/contador2.txt";
$contador2 = 0;
$fp2 = fopen($archivo2,"r");
$contador2 = fgets($fp2, 26);
fclose($fp2);
++$contador2;
$fp2 = fopen($archivo2,"w+");
fwrite($fp2, $contador2, 26);
fclose($fp2);
$salida='

‘.$contador2.’.- Comentado por ‘.$nombre.’ – ‘.$_POST[email].’
‘.$fecha.’

‘.$comentario.’

‘;
$archivo = «comentarios/contador.txt»;
$contador = 0;
$fp = fopen($archivo,»r»);
$contador = fgets($fp, 26);
fclose($fp);
–$contador;
$fp = fopen($archivo,»w+»);
fwrite($fp, $contador, 26);
fclose($fp);
$fp=fopen(«comentarios/$contador.php»,»a»);
fwrite($fp,$salida);
fclose($fp);
}

?>
<? echo"$error» ?>

Nombre (Dejar en blanco para Anonimo)

Email (Obligatorio)

Comentario (Obligatorio)

<?
$contador3 ="comentarios/contador2.txt";
$ag3 = fopen($contador3, "r+");
@ $comentarios3 = fread($ag3, filesize($contador3));
fclose($ag3);
if($comentarios3 == "0"){
echo"No hay comentarios»;
}else{
foreach (glob(«comentarios/*.php») as $comentari) {
include ($comentari);
}
}
?>
by dedydamy

luisa
Publicado: 03/09/2010 5:40 pm

@charset «UTF-8»;
/* CSS Document */
body {
font-family: «Trebuchet MS», Arial, Helvetica, sans-serif;
font-size: 12px;
color: #333;
}
input {
font-family: «Trebuchet MS», Arial, Helvetica, sans-serif;
font-size: 12px;
color: #666;
border: solid 2px #CCC;
padding: 4px 4px;
margin-right: 6px;
}
/* Vanadium Styles */
div.vanadium-invalid {
border-color: red !important;
border-style: solid !important;
}
div.vanadium-valid {
border-color: green !important;
border-style: solid !important;
}
.vanadium-message-value {
font-style: italic;
text-decoration: underline;
}
.vanadium-advice.vanadium-invalid, .vanadium-advice.vanadium-invalid * {
color: red;
}
div {
margin: 10px;
padding: 10px;
border-color: grey;
border-style: solid;
}
input.vanadium-valid {
border-color: greenyellow;
}
input.vanadium-invalid {
border-color: red;
}
#messages {
height: 70px;
padding: 0;
border-color: yellow;
}
input.vanadium-valid ~ .vanadium-valid-advice {
display: inline !important;
color: green;
}

luisa
Publicado: 03/09/2010 5:41 pm

A pasarlo bien. Chios

haven
Publicado: 05/10/2010 11:59 am

buenas una cosa, esoty intentando validar un checkbox para que se marque uno como mínimo para ello estoy utilizando esto :one_required pero si pongo como clase eso, entonces no me funciona el resto, alguna idea de como puede hacerse?

joker
Publicado: 07/11/2010 1:22 am

alguien sabe como validar un select list o listbox no veo como hacerlos

Gabriel Martínez Portilla
Publicado: 15/01/2011 10:40 pm

Pregunta:

Ya estoy usando VANADIUM me parece una excelente opcion de validación del lado del cliente.

No veo como poder validar que un numero este entre cierto rango, por ejemplo : que sea numero entrero, que sea requerido , que sea mayor que 0 y que sea menor de 100

Ojala alguin me puedea ayudar, de antemano muchas gracias!

Gabriel Martinez Portilla
@pcsolucionesnet

msqar
Publicado: 08/03/2011 2:49 pm

Hola gente, no me está andando la validación, lo estoy haciendo en asp.net… que no creo que ese sea el problema.
Es tan simple lo que estoy haciendo, pero me debe estar faltando algo.

Test

Username:

Password:

Email:

ven algo raro ? no se :S
ni siquiera me pone el recuadro rojo de fondo, tengo que hacer algun tipo de CSS? lo intenté tmb pero nada…

viri
Publicado: 14/03/2011 6:35 am

hola, tengo vanadium funcionando y va genial, pero me preguntaba como puedo hacer para que me ponga el aviso debajo del campo y no al lado?
ejemplo
me aparece asi
nombre: [——] este campo es obligatorio

y yo kiero q lo haga asi

nombre: [——]
este campo es obligatorio

probe a hacerlo poniendole un pero me desplaza los demas campos lateralmente

si alguien me puede ayudar

gracias de antemano

miguel
Publicado: 16/03/2011 12:40 pm

Hola que tal, muy buen aporte, ya lo implemente en mis formularios y funciona de maravilla, lo que no he logrado hacer es que me valide una lista de selección, me podrian ayudar?


<select name="sexo" id="sexo" class=":required">
<option value="1">Hombre</option>
<option value="2">Mujer</option>
< /select >

Ricardo Caamal
Publicado: 17/06/2011 6:47 pm

Si se puesde utilizar con selects, es :required solo que agrega una opcion con value=»» vacio, yo lo tengo en un sitio y ademas le agegé imagenes(iconos)

YeisonSoto
Publicado: 07/08/2011 3:57 pm

Hoal amigos estoy utilizando este fabuloso script, para validar los campos de mi s formularios, pero tengo una duda como hago para que un campo acepte solo letras y espacios….

anuncio interactivo
Publicado: 23/08/2011 10:08 pm

Exelente le voy a dar mucho uso………….

Mauro
Publicado: 12/12/2011 11:38 am

hola, tengo vanadium funcionando y va genial, pero me preguntaba como puedo hacer para que me ponga el aviso debajo del campo y no al lado?

Gabriel
Publicado: 31/12/2011 1:29 am

jjajajaja no es necesario traducirlo… los mensajes de error son personalizados!!!!!!!!!!!!!!! pero tiene un pequeño error con alphanum para validar!!!! no permite espacios!!!! :/
Pero!!!! se puede modificar y agregar nuevas variables paraa validar! lol!

Cecilia
Publicado: 21/04/2012 12:49 pm

Hola, estoy tratando de implementar vanadium en mis formularios, el problema es que mando llamar a unos formularios asincronamente y no se como inicializar vanadium para estos formularios.

Me pueden ayudar?
Gracias

Carlos
Publicado: 28/06/2012 4:43 pm

saludos compañeros estoy usando vanadium y esta de fabula lo unico es que en la clase alpha solo letras no me acepta espacios en blanco como podre corregir este error, porque no manejo muy bien el codigo

gnsis
Publicado: 01/02/2013 9:23 am

hola solo una pregunta estoy ulizando vanadium pero el formato de la fecha date no es el mismo qeu requiero para mysql como puedo cambiar el formato gracias
dd/mm/yyyy
y lo quiero
yyyy-mm-dd

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)