Ver Mensaje Individual
  #16 (permalink)  
Antiguo 24/04/2008, 08:57
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...

Hola Ciisteado, recibi tu mail, te envio el codigo ya implementado completamente en una pagina ASP, ya lo cale y funciona sin problemas. Mande el foco si hay un error en algun campo donde su contenido se repita, si usas hojas de estilo podrias darle el efecto de cambiar de color cuando algun control tenga el foco y eso ayudaría a ver mejor donde esta el cursor.

Si tienes alguna duda estoy a tus ordenes

Saludos.

Atte.

Reyleo

Código:
 
<HTML>
<HEAD>
<script language="javascript">
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 && TipoControl == "imei")
      {
    if((strTextoAChecar == document.ayuda.all('imei' + intContador).value) && intRenglon != intContador)
    {
        alert("El campo " + TipoControl + " del renglon " + intRenglon + "\nes igual al campo IMEI del renglon " + intContador + "\nEl cursor se situará en el campo correspondiente.");
        ctrlCaja.focus();
    }
      }
 
   //Si tiene algo el control tipo IMEI podemos comparar su contenido si
   //es igual al control que estamos verificando.
      if(document.ayuda.all("ICC" + intContador).value.length > 0 && TipoControl == "ICC")
      {
    if((strTextoAChecar == document.ayuda.all('ICC' + intContador).value) && intRenglon != intContador)
    {
        alert("El campo " + TipoControl + " del renglon " + intRenglon + "\nes igual al campo ICC del renglon " + intContador + "\nEl cursor se situará en el campo correspondiente.");
        ctrlCaja.focus();
    }
      }
 
   //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 && TipoControl == "DN")
      {
    if((strTextoAChecar == document.ayuda.all('DN' + intContador).value) && intRenglon != intContador)
    {
        alert("El campo " + TipoControl + " del renglon " + intRenglon + "\nes igual al campo DN del renglon " + intContador + "\nEl cursor se situará en el campo correspondiente.");
        ctrlCaja.focus();
    }
      }
      intContador++;
  }
 }
 
}
</script>
 
</HEAD>
 
<BODY>
<%
Dim lim
lim = 15
%>
<form name="ayuda" method="post" action="ayuda2.asp">
<input type="hidden" name="total" value="<%=lim%>"> <!--aqui indicamos el numero de renglones-->
<table>
<%
 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>
<P>&nbsp;</P>
</BODY>
</HTML>