PageSourceSearch

https://pasalapagina.com/js/validator_plp.js

js pasalapagina.com collected 2026-10-04 05:20:29 UTC 16,904 bytes, 410 lines download raw bytes

1// @-----------------------------------------------------@
2// |MGMD FORM VALIDATOR					  _||_   |
3// |MGMD LTDA TODOS LOS DERECHOS RESERVADOS |T\/T|  |
4// |											 |I__I|  |
5// |http://www.magdalenamedio.net				   ||    |
6// @-----------------------------------------------------@
7var validInst ; // VARIABLE DE INSTANCIACION DE LA CLASE
8// CONSTRUCTOR
9// RECEBE TIPOS DE ALERTA (INT, 1-2)
10// RECIBE DIV (STRING, DIV ID)
11function Validator(msgAlertType, div, extra)
12{
13
14	// INSTANCIACION DE VARIABLES GLOBALES
15	this.msgAlertType  = msgAlertType ? msgAlertType : 1 ;
16	this.div           = div ? div : '' ;
17	this.validables    = new Array() ; // INSTANCIA DE ARREGLO DE CAMPOS VALIDABLES
18	this.valid         = true ;
19	this.validatorMsg  = '' ;
20	this.extra         = extra;
21	this.form          = this.getForm() ; // INSTANCIAMIENTO DE LA VARIABLE GLOBAL DEL FORMULARIO CON LA FUNCION LO BUSCA
22	// VERIFICA SI HAY O NO HAY FORMULARIO
23	if ( (typeof this.form != "undefined") && (this.form != null) )
24	{
25		this.searchRequiredFields() ; // BUSCA CAMPOS REQUERIDOS
26
27		this.addButtonEventHandler() ; // AGREGA EL HANDLER AL EVENTO CLICK DEL BOTON
28	}
29}
30// BUSCA EL FORMULARIO QUE TENGA ID 'VALIDABLE' Y RETORNA EL FORMULARIO
31Validator.prototype.getForm = function () {
32									return document.getElementById('validable');
33
34								 } ;
35// BUSCA LOS CAMPOS REQUERIDOS
36Validator.prototype.searchRequiredFields = function () {
37											 var count = 0 ;
38
39											 for ( i = 0 ; i < this.form.elements.length ; i++ )
40											 {
41												 //	SI EL NOMBRE DE LA CLASE DEL CAMPO ES 'REQUIRED', EL CAMPO ES REQUERIDO
42												 if  ( (typeof this.form.elements[i].className != "undefined") && (this.form.elements[i].disabled == false) && (this.form.elements[i].className.search("notValidable") == -1) )
43												 {
44													// AGREGAMOS UN CAMPO VALIDABLE AL ARREGLO
45													this.validables[count] = this.form.elements[i] ;
46													// ENVIAMOS EL CAMPO A LA FUNCION DE VERIFICACION DE HANDLERS REQUERIDOS
47													this.addNeededEventHandler(this.validables[count]) ;
48
49													count++ ;
50
51												 }
52											 }
53										   } ;
54// AGREGA EL HANDLER AL BOTON PARA EL EVENTO 'CLICK'
55Validator.prototype.addButtonEventHandler = function () {
56												this.form.onsubmit = function (e) {
57																				return validInst.checkRequiredFields(e) ;
58																				 };
59
60											} ;
61// VERIFICA EL VALOR Y EL ESTADO DE LOS CAMPOS REQUERIDOS LUEGO DEL EVENTO 'CLICK' DEL BOTON
62Validator.prototype.checkRequiredFields = function (e, showAlert) {
63	if(typeof showAlert === 'undefined') {
64		showAlert = true;
65	}
66												var actualElement = '' ;
67												this.validatorMsg = '' ;
68												this.valid        = true ; // FORMULARIO VALIDO POR DEFECTO
69
70												// RECORRE EL ARREGLO DE CAMPOS REQUERIDOS
71												validatedComic 		= false;
72												for(field in this.validables)
73												{
74													actualElement   = this.validables[field] ; // DEFINE EL ELEMENTO ACTUAL
75													var actualValid = true ; // CAMPO ACTUAL POR DEFECTO VALIDO
76													var extra       = '' ; // VARIABLE VACIA PARA DATO EXTRA DEL CAMPO NO VALIDO
77													// SWITCH POR TIPO DE CAMPO
78													switch (actualElement.type){
79														case 'text':
80															// VERIFICAR SI EL CAMPO ESTA VACIO
81															if((actualElement.value == "") && (actualElement.className.search("optional") == -1))
82															{
83																this.valid = false ; // CAMBIA EL ESTADO DEL FORMULARIO
84																					 // A INVALIDO
85
86																actualValid = false ; // CAMBIA EL ESTADO DEL CAMPO ACTUAL
87																					  // A INVALIDO
88
89																extra = 'Campo Vacio' ; // INFORMACION EXTRA DEL CAMPO INVALIDO
90
91															}
92															// VERIFICAR SI EL CAMPO TIENE DATO EXTRA DE EMAIL
93															else if((actualElement.className.search("email") > -1))
94															{
95																// VERIFICA SI LA FUNCION VERIFICADORA DE ESTRUCTURA DE MAIL
96																// RETORNA VERDADERO O FALSO
97																if(!this.checkEmail(actualElement.value))
98																{
99																	this.valid = false ;
100
101																	actualValid = false ;
102
103																	extra = 'Formato Invalido' ;
104																}
105															}
106															else if((actualElement.className.search("minmax") > -1) && (actualElement.value != ""))
107
108															{
109
110																// VERIFICA SI LA FUNCION VERIFICADORA DE ESTRUCTURA DE MAIL
111
112																// RETORNA VERDADERO O FALSO
113
114																if(actualElement.value.length < actualElement.alt.split('-')[0])
115
116																{
117
118																	this.valid = false ; 
119
120																						 
121
122																	actualValid = false ; 
123
124																						  
125																	extra = 'Numero de caracteres menor a ' + actualElement.alt;
126
127																}
128																else if(actualElement.value.length > actualElement.alt.split('-')[1])
129
130																{
131
132																	this.valid = false ; 
133
134																						 
135
136																	actualValid = false ; 
137
138																						  
139																	extra = 'Numero de caracteres mayor a ' + actualElement.alt;
140
141																}
142
143															}
144															else if(actualElement.className.search("retype") > -1)
145															{
146																// VERIFICA SI LA FUNCION VERIFICADORA DE ESTRUCTURA DE MAIL
147																// RETORNA VERDADERO O FALSO
148																if(actualElement.value != document.getElementById(actualElement.alt).value)
149																{
150																	this.valid = false ;
151
152																	actualValid = false ;
153
154																	extra = 'No coincide con el valor de ' + document.getElementById(actualElement.alt).title;
155																}
156															}
157														break;
158														case 'select-one':
159															// RECORRE CADA OPCION DEL CAMPO SELECT
160															for(i=0;i<actualElement.options.length;i++)
161															{
162																// ENTRA SI EL CAMPO ESTA SELECCIONADO
163																if(actualElement.options[i].selected == true)
164																{
165																	// VERIFICA SI EL VALOR DEL CAMPO ACTUAL ES 'NULL'
166																	if(actualElement.options[i].value == 'NULL')
167																	{
168																		this.valid = false ;
169																		actualValid = false ;
170																		extra = 'Ninguna Opcion Seleccionada' ;
171																	}
172																	break;
173																}
174															}
175														break;
176														case 'textarea':
177															// VERIFICAR SI EL CAMPO ESTA VACIO
178															if(actualElement.value == "")
179															{
180																this.valid = false ;
181																actualValid = false ;
182																extra = 'Campo Vacio' ;
183
184															}
185														break;
186														case 'password':
187															if((actualElement.value == "") && (actualElement.className.search("optional") == -1))
188															{
189																this.valid = false ; // CAMBIA EL ESTADO DEL FORMULARIO
190																					 // A INVALIDO
191
192																actualValid = false ; // CAMBIA EL ESTADO DEL CAMPO ACTUAL
193																					  // A INVALIDO
194
195																extra = 'Campo Vacio' ; // INFORMACION EXTRA DEL CAMPO INVALIDO
196
197															}
198															else if(actualElement.className.search("retype") > -1)
199															{
200																// VERIFICA SI LA FUNCION VERIFICADORA DE ESTRUCTURA DE MAIL
201																// RETORNA VERDADERO O FALSO
202																if(!((document.getElementById(actualElement.alt).className.search("optional") > -1) && (document.getElementById(actualElement.alt).value == "")))
203																{
204																	if(actualElement.value != document.getElementById(actualElement.alt).value)
205																	{
206																		this.valid = false ;
207
208																		actualValid = false ;
209
210																		extra = 'No coincide con el valor de ' + document.getElementById(actualElement.alt).title;
211																	}
212																}
213															}
214															else if((actualElement.className.search("minimum") > -1) && (actualElement.value != ""))
215															{
216																// VERIFICA SI LA FUNCION VERIFICADORA DE ESTRUCTURA DE MAIL
217																// RETORNA VERDADERO O FALSO
218																if(actualElement.value.length < actualElement.alt)
219																{
220																	this.valid = false ;
221
222																	actualValid = false ;
223
224																	extra = 'Numero de caracteres menor a ' + actualElement.alt;
225																}
226															}
227														break;
228														case 'checkbox':
229															if(actualElement.className.search("accept") > -1)
230															{
231																// VERIFICA SI LA FUNCION VERIFICADORA DE ESTRUCTURA DE MAIL
232																// RETORNA VERDADERO O FALSO
233																if(actualElement.checked == false)
234																{
235																	this.valid = false ;
236
237																	actualValid = false ;
238
239																	this.validatorMsg += 'Debe aceptar los terminos y condiciones para continuar' ;
240																}
241															}
242														break;
243														case 'file':
244															// VERIFICAR SI EL CAMPO ESTA VACIO
245															if(actualElement.value == "")
246															{
247																this.valid = false ; // CAMBIA EL ESTADO DEL FORMULARIO
248																					 // A INVALIDO
249
250																actualValid = false ; // CAMBIA EL ESTADO DEL CAMPO ACTUAL
251																					  // A INVALIDO
252
253																extra = 'Campo Vacio' ; // INFORMACION EXTRA DEL CAMPO INVALIDO
254
255															}
256														break;
257													}
258													// ENTRA SI EL CAMPO ACTUAL NO ES VALIDO
259													if(!actualValid)
260													{
261														// CONSTRUYE EL MENSAJE QUE SALE SI EL FORMULARIO NO ES VALIDO
262														if(actualElement.title == 'Vi�eta')
263														{
264															if(validatedComic == false)
265															{
266																validatedComic 		= true;
267																this.validatorMsg += 'Por favor revisa que todo el comic est&eacute; diligenciado';
268																this.validatorMsg += '{linebreak}' ;
269															}
270														}
271														else
272														{
273															this.validatorMsg += '*'+actualElement.title ;
274															this.validatorMsg += '{linebreak}' ;
275														}
276
277														// VERIFICA SI TIENE QUE SACAR LA INFORMACION EXTRA DEL CAMPO ACTUAL
278														if(this.extra)
279															this.validatorMsg += '. ' + extra + ' ' ;
280
281														
282													}
283												}
284												// ENTRA SI EL FORMULARIO NO ES VALIDO
285												if(!this.valid)
286												{
287													// TIRA LA ALERTA
288													if(showAlert) {
289                                                        this.throwAlert();
290                                                    }
291													return false;
292												}
293											} ;
294 // FUNCION QUE VERIFICA LA ESTRUCTURA DEL MAIL
295 Validator.prototype.checkEmail = function(elementValue) {
296									var at="@"
297									var dot="."
298									var lat=elementValue.indexOf(at)
299									var lstr=elementValue.length
300									var ldot=elementValue.indexOf(dot)
301									if (elementValue.indexOf(at)==-1){
302									   return false
303									}
304									if (elementValue.indexOf(at)==-1 || elementValue.indexOf(at)==0 || elementValue.indexOf(at)==lstr){
305									   return false
306									}
307									if (elementValue.indexOf(dot)==-1 || elementValue.indexOf(dot)==0 || elementValue.indexOf(dot)==lstr){
308									   return false
309									}
310                                    if (elementValue.indexOf(at,(lat+1))!=-1){
311									   return false
312									}
313									if (elementValue.substring(lat-1,lat)==dot || elementValue.substring(lat+1,lat+2)==dot){
314									   return false
315									}
316								    if (elementValue.indexOf(dot,(lat+2))==-1){
317									   return false
318									}
319
320									if (elementValue.indexOf(" ")!=-1){
321									   return false
322									}
323
324									return true
325								} ;
326
327// AGREGA LOS HANDLERS NECESARIOS A CAMPOS DE VERIFICACION
328Validator.prototype.addNeededEventHandler = function(element) {
329												// SWITCH CON EL TAG 'ALT' DEL CAMPO
330												if (element.className.search('text-only') > -1){
331													// AGREGA LA FUNCION DE VERIFICACION DE SOLO TEXTO AL EVENTO 'KEYPRESS'
332													element.onkeypress = function (e) {
333																			return	validInst.validateText(e) ;
334																};
335
336												}
337												else if (element.className.search('numeric') > -1) {
338													// AGREGA LA FUNCION DE VERIFICACION DE SOLO NUMEROS AL EVENTO 'KEYPRESS'
339													element.onkeypress =	function (e) {
340																			 return	validInst.validateNumber(e) ;
341																			};
342												}
343											} ;
344
345// VALIDA QUE EL CAMPO TENGA SOLO TEXTO
346Validator.prototype.validateText = function (e) {
347
348									// REVISA QUE TECLA SE PRESIONO UTILIZANDO EL EVENTO LANZADO
349									var key = (e) ? e.which : window.event.keyCode;
350
351									// ENTRA SI LA TECLA NO ES SOLO TEXTO
352									if ((key < 65 && key != 32 && key != 46 & key != 8 & key != 0) || key > 122 || (key > 90 && key < 97))
353											return false;
354									return true;
355									} ;
356// VALIDA QUE EL CAMPO TENGA SOLO NUMEROS
357Validator.prototype.validateNumber = function (e) {
358
359									// REVISA QUE TECLA SE PRESIONO UTILIZANDO EL EVENTO LANZADO
360									var key = (e) ? e.which : window.event.keyCode;
361									// ENTRA SI LA TECLA NO ES SOLO NUMEROS
362									if (key > 31 && (key < 48 || key > 57))
363											return false;
364
365									return true;
366									} ;
367// FUNCION QUE TIRA LA ALERTA
368Validator.prototype.throwAlert = function()
369								{
370									// INSTANCIA LA VARIABLE MENSAJE CON UN TEXTO
371									var msg = 'Hay errores en los datos ingresados:'
372									// HACE UN SWITCH CON EL TIPO DE ALERTA QUE SE HAYA ESTABLECIDO (1 - HTML, 2 - ALERTA)
373									switch(this.msgAlertType)
374									{
375										case 1:
376												// CONSTRUYE EL MENSAJE CON LOS CAMPOS INVALIDOS
377												// Y REMPLZA EL {LINEBREAK} POR \R\N
378												msg += '\r\n' + this.validatorMsg.replace(/{linebreak}/g, "\r\n");
379												alert(msg) ;
380										break;
381										case 2:
382											var target = document.getElementById(this.div);
383
384											// MUESTRA EL DIV SI ESTA ESCONDIDO
385											if(target.style.display == 'none')
386											{
387												target.style.display = '';
388											}
389											var target2 = document.getElementById('TB_overlay');
390											target2.style.display = '';
391											// CONSTRUYE EL MENSAJE CON LOS CAMPOS INVALIDOS
392											// Y REMPLZA EL {LINEBREAK} POR <BR/>
393											target.innerHTML = '<div class="alerta lpv2 clearfix"><a href="#" onclick="" class="cerrar_lb" title="Cerrar">Cerrar</a><div class="icon_adv"><img src="' + ApplicationUrl + 'img/web-plp/content/icon_2.png" width="107" height="108" alt="" /></div><div class="txt_adv txt20"><div class="cell"><div class="valign"><p>Hay errores en los datos ingresados</p><p>' + this.validatorMsg.replace(/{linebreak}/g, "<br/>") + '</p></div><!--valign--></div><!--cell--></div><!--txt_adv--></div><!--alerta-->';
394                                                                                        $('.cerrar,.cerrar_lb').click(function (evt) {
395                                                                                            evt.preventDefault();
396                                                                                            $('.popup-aliados').fadeOut();
397                                                                                            $('.popup,.alerta,#lightbox').fadeOut();
398                                                                                            $('#TB_overlay').fadeOut();
399                                                                                        });  
400										break;
401									}
402								} ;
403                                                                if($('#lightbox').length > 0){
404                                                                    
405                                                                    $(document).ready( function () { validInst = new Validator(2, 'lightbox', false);  });
406                                                                }
407                                                                else {
408                                                                    $(document).ready( function () { validInst = new Validator(1, '', true); });
409                                                                }
410								var validatedComic = false;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.