Ver Mensaje Individual
  #13 (permalink)  
Antiguo 23/04/2008, 12:44
Avatar de Reyleo
Reyleo
 
Fecha de Ingreso: julio-2006
Mensajes: 6
Antigüedad: 18 años, 10 meses
Puntos: 1
Re: Validación de múltiples cadenas...

Muchas gracias Al Zuwaga.

Solo por probar colocare mi solucion propuesta un poco mejorada:

Código:
<form name"ayuda" method="post" action="ayuda2.asp">
<%
	lim=15
%>
	<input type="hidden" name="total" value="<%=lim%>"/> <!--aqui indicamos el numero de renglones-->
<%
	for i=1 to lim
%>
	<tr>
	    <!--Usa el signo de igual despues de los tags de servidor (los que tienen el %) en
			vez del response, es menos codigo, mas sencillo de ver y mas rapido -->
        <!--Agregamos la propiedad id dentro del control Text, eso nos facilitará su manejo
			con el javascript -->
        <!--Agrega la llamda de la función Javascript funChecaSiRepite() mediante el evento de
			onBlur, de esta forma se invocará cuando el control deje de tener el foco -->
			
        <td><%=i%></td> <!--Este campo solo nos ayudará para indicar el renglon-->
		<td>IMEI:&nbsp;<input type="text" id="imei<%=i%>" name="imei<%=i%>"/ onBlur="funChecaSiRepite(this, 'imei', <%=i%>);"></td>
		<td>ICC:&nbsp;<input type="text" id="ICC<%=i%>" name="ICC<%=i%>"/ onBlur="funChecaSiRepite(this, 'ICC', <%=i%>);"></td>
		<td>DN:&nbsp;<input type="text" id="DN<%=i%>" name="DN<%=i%>%>"/ onBlur="funChecaSiRepite(this, 'DN', <%=i%>);"></td>
	</tr>
<%next%>
	<tr>
		<td colspan="4" align="center"><input type="submit"value="Enviar datos"/></td>
	</tr>
</table>
</form>

y el JAVASCRIPT Sería:

Código:
function funChecaSiRepite(ctrlCaja, TipoControl, intRenglon)
{
	var strTextoAChecar = ctrlCaja.value;
	var intNumRenglones = document.ayuda.total.value;
	var intContador = 1;

	//Verificamos si tiene algo la caja que estamos analizando, de lo contrario hacemos nada
	if(strTextoAChecar.length > 0)
	{

		while(intContador <= intNumRenglones)
		{

			//Si tiene algo el control tipo IMEI podemos comparar su contenido si 
			//es igual al control que estamos verificando.
		    if(document.ayuda.all("imei" + intContador).value.length > 0)
		    {

				if(strTextoAChecar == document.ayuda.all('imei' + intContador).value)
				{
				    alert("El campo " + TipoControl + " del renglon " + intRenglon + "\nes igual al campo IMEI del renglon " + intContador + "\nEl cursor se situará en el campo correspondiente.");
				    ctrlCaja.onfocus();
				}

			}

			//Si tiene algo el control tipo ICC podemos comparar su contenido si
			//es igual al control que estamos verificando.
		    if(document.ayuda.all("ICC" + intContador).value.length > 0)
		    {

				if(strTextoAChecar == document.ayuda.all('ICC' + intContador).value)
				{
				    alert("El campo " + TipoControl + " del renglon " + intRenglon + "\nes igual al campo ICC del renglon " + intContador + "\nEl cursor se situará en el campo correspondiente.");
   				    ctrlCaja.onfocus();
				}

			}


			//Si tiene algo el control tipo DN podemos comparar su contenido si
			//es igual al control que estamos verificando.
		    if(document.ayuda.all("DN" + intContador).value.length > 0)
		    {

				if(strTextoAChecar == document.ayuda.all('DN' + intContador).value)
				{
				    alert("El campo " + TipoControl + " del renglon " + intRenglon + "\nes igual al campo DN del renglon " + intContador + "\nEl cursor se situará en el campo correspondiente.");
   				    ctrlCaja.onfocus();
				}

			}

	        intContador++;
		}

	}
	

}
CITA:
Código:
DEL MASTER u_goldman:

Hola Reyleo, bienvenido a FDW!

Yo creo que el problema de JavaScript es que no puedes confiar en un proceso en el cliente, no dudo que tu solución se muy buena -así se ve- y estoy de acuerdo con hacer cosas pequeñas del lado del cliente, pero me imagino que una validación así no solo consume muchos recursos sino también puede ser "asaltada" . 

Ahora por aquello de desactivar los botones y cosas así, si es un ambiente controlado supongo que puedes poner las reglas que quieras, de lo contrario creo que siempre deberías proveer una manera de que tu aplicación funcione (graceful degradation)

P.D. Muchas gracias u_goldman por la bienvenida y por tus comentarios. Te comento que estoy completamente de acuerdo con lo que dices, pero sabemos que en web es muy dificil tener los ambientes controlados al 100% sin embargo desde hace un rato se induce al usuario a respetar las reglas de tu sitio (por ejemplo Flash y sus plugins, VS .NET ActiveX, etc.) y hay sitios criticos (por ejemplo el de un un banco) muchas de sus funcionalidades estan en java y javascript y obligan al usuario activar las opciones correspondientes a estos, de otra forma no podran navegar. Bueno los dejo, y fue un honor muy grato el haber compartido una sugerencia entre tanto Master de este foro. Muchas gracias por su atencion.

Atte.

Reyleo