留言板

Como validar dos correos (uno u otro)

Daniel Fernandez,修改在6 年前。

Como validar dos correos (uno u otro)

Junior Member 帖子: 29 加入日期: 17-3-29 最近的帖子
Hola a todos,

Tengo un JSP en el cual quiero validar uno de los dos correos que escribo desde mi portal, estoy utilizando aui:validator y quería saber si se podría validar un correo electrónico, de manera automática, sin hacer uso de funciones ni de campos custom.

Gracias Un saludo.
thumbnail
Pedro Martínez,修改在6 年前。

RE: Como validar dos correos (uno u otro)

New Member 帖子: 4 加入日期: 11-7-19 最近的帖子
Hola,

No entiendo muy bien que es lo que quieres hacer, pero con el tag validator puedes validar tanto el formato de email (name="email") como compararlo con un valor concreto (name="equalTo"):

https://dev.liferay.com/develop/tutorials/-/knowledge_base/6-2/using-the-alloyui-validator-tag#available-validation-rules

Un saludo.
Daniel Fernandez,修改在6 年前。

RE: Como validar dos correos (uno u otro)

Junior Member 帖子: 29 加入日期: 17-3-29 最近的帖子
Hola buenas pedro,

Estoy usando Liferay 7 con tomcat 8 y dispongo de un JSP tal que asi:


<div class="col-sm-12">
<aui:input wrapperCssClass="col-sm-4" label="Email Particular" type="text" id="emailParticular" name="emailParticular" value="<%=socio.getEmailParticular()%>">
<aui:validator name="required" />
<aui:validator name="email" />
</aui:input>
<aui:input wrapperCssClass="col-sm-4" label="Email Trabajo" type="text" id="emailTrabajo" name="emailTrabajo" value="<%=socio.getEmailTrabajo()%>">
<aui:validator name="required" />
<aui:validator name="email" />
</aui:input>
</div>


Desde mi liferay portal web, tengo dos campos donde introduzco los emails, lo que quiero realizar es una función la cual me valide si uno de los dos campos del email esta relleno, si uno de los dos esta, que me permita enviar mi formulario, si no que no me permita enviarlo y salga un mensaje de error debajo de los dos campos de texto.

No se si me he explicado con exactitud.

Gracias por adelantado.
thumbnail
Pedro Martínez,修改在6 年前。

RE: Como validar dos correos (uno u otro)

New Member 帖子: 4 加入日期: 11-7-19 最近的帖子
Hola Daniel, perdona la tardanza en responder, pero he estado bastante ocupado.
Creo que puedes hacer lo que necesitas con el custom validator y un poco de javascript. Te paso un ejemplo basado en tu código:

<aui:input wrappercssclass="col-sm-4" label="Email Particular" type="text" id="emailParticular" name="emailParticular" value="">				
			<aui:validator name="custom" errormessage="At least one email is required">
				function (val, fieldNode, ruleValue) {	
					res = false;
					
					if(val!=''){
						var re = /^(([^&lt;&gt;()[\]\\.,;:\s@\"]+(\.[^&lt;&gt;()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
					  	if (re.test(val)){
					  		res = true;
					  	}else{					  		
					  		return false;			  		
					  	}
					 }
				
					return (res || $('#<portlet:namespace />emailTrabajo').val() != '');				
				}				
			</aui:validator>	
		</aui:input>
		<aui:input wrappercssclass="col-sm-4" label="Email Trabajo" type="text" id="emailTrabajo" name="emailTrabajo" value="">			
			<aui:validator name="custom" errormessage="At least one email is required">
				function (val, fieldNode, ruleValue) {	
					res = false;
					
					if(val!=''){
						var re = /^(([^&lt;&gt;()[\]\\.,;:\s@\"]+(\.[^&lt;&gt;()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
					  	if (re.test(val)){
					  		res = true;
					  	}else{
					  		return false;			  		
					  	}
					 }
				
					return (res || $('#<portlet:namespace />emailParticular').val() != '');				
				}				
			</aui:validator>	
		</aui:input>		


Lo he escrito rápido e indudablemente se puede mejorar bastante, pero el resumen es que tendrás que usar una validación a medida.

Espero que sea de ayuda. Un saludo.