掲示板

Como validar dos correos (uno u otro)

6年前 に Daniel Fernandez によって更新されました。

Como validar dos correos (uno u otro)

Junior Member 投稿: 29 参加年月日: 17/03/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
6年前 に Pedro Martínez によって更新されました。

RE: Como validar dos correos (uno u otro)

New Member 投稿: 4 参加年月日: 11/07/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.
6年前 に Daniel Fernandez によって更新されました。

RE: Como validar dos correos (uno u otro)

Junior Member 投稿: 29 参加年月日: 17/03/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
6年前 に Pedro Martínez によって更新されました。

RE: Como validar dos correos (uno u otro)

New Member 投稿: 4 参加年月日: 11/07/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.