Foros del Web » Programando para Internet » ASP Clásico »

Validación de múltiples cadenas...

Estas en el tema de Validación de múltiples cadenas... en el foro de ASP Clásico en Foros del Web. Hola a todos: El problema es el siguiente, en un formulario capturo múltiples valores en cajas de texto, lo que requiero saber es como validar ...
  #1 (permalink)  
Antiguo 23/04/2008, 10:05
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 0
Exclamación Validación de múltiples cadenas...

Hola a todos:

El problema es el siguiente, en un formulario capturo múltiples valores en cajas de texto, lo que requiero saber es como validar que esos valores NUNCA sean iguales..

Anexo el codigo que uso para capturar los valores haber si de algo sirve...
ayuda.asp
Código HTML:
<form name"ayuda" method="post" action="ayuda2.asp">
<%
	lim=15
%>
	<input type="hidden" name="total" value="<%response.Write(lim)%>"/>
<%
	for i=1 to lim
%>
	<tr>
		<td>IMEI:&nbsp;<input type="text" name="imei<%response.write(i)%>"/></td>
		<td>ICC:&nbsp;<input type="text" name="icc<%response.write(i)%>"/></td>
		<td>DN:&nbsp;<input type="text" name="dn<%response.write(i)%>"/></td>
	</tr>
<%next%>
	<tr>
		<td><input type="submit"value="Enviar datos"/></td>
	</tr>
</table>
</form> 
En este archivo recojo los valores que capture para hacer el insert
ayuda2.asp
Código HTML:
<%
	lim=request("total")
	for i=1 to lim
		sql="INSERT INTO series(imei,icc,dn) VALUES("&request("imei"&i)&","&request("icc"&i)&","&request("dn"&i)&")"
	next
%> 
Obviamente la cantidad de valores nunca es la misma, pero lo importante de esto es saber en donde hago la validacion para que no se capturen los mismos datos en cualquier caja de texto..

Agradezco enormemente cualquier ayuda...

Saludos a todos...
  #2 (permalink)  
Antiguo 23/04/2008, 10:10
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 2 meses
Puntos: 88
Re: Validación de múltiples cadenas...


esto lo deberias de manejar en javascript, para que valide el contenido directamente antes de darle click al boton enviar

el problema radica en que hipoteticamente serian muchos valores a comprobar... claro pueden ser 1 o 2, pero y si la vuelta son 10?, como creas los parametros para que la funcion recorra toda la coleccion y verifique que ninguno sea igual??
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 23/04/2008, 10:23
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Validación de múltiples cadenas...

Hola Shiryu_Libra:

Precisamente ese es el problema que tengo, no sé como validar tantos valores.. por que no solo son 10 en ocaciones estos valores pueden llegar hasta 100 o más..

Se me ocurre postearte la función con la que verifico si todos los campos han sido llenados...
Código HTML:
<script language="javascript">
	function guardar()
	{
		var x;
		x=1;
		var limite=15;
		var i=0;
		<%for i=1 to limite%>	
			if((window.series.imei<%response.write(i)%>.value=='')||(window.series.icc<%response.write(i)%>.value=='')||(window.series.dn<%response.write(i)%>.value==''))
			{
				x=0;
				alert('Es NECESARIO llenar todos los campos de IMEI, ICC y DN que aparecen en pantalla');
				<%i=limite%>
			}		
		<%next%>
	}
</script> 
Ojála pudieras orientarme en como hacer esa validación...

Gracias por todo...

Saludos...
  #4 (permalink)  
Antiguo 23/04/2008, 11:29
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 2 meses
Puntos: 88
Re: Validación de múltiples cadenas...

tomando como base este grandioso codigo de Tunait (), creo que te seria mas sencillo implementarlo

este es el codigo
Código PHP:
<script type="text/javascript">
//Script verificador de formularios por Tunait!
//Los campos obligados deben terminar con un *
//No verifica los checkbox ni los radio 

function verificarFormu(cualo){
    for(
m=0;m<cualo.length;m++){
        if(
cualo.elements[m].name.charAt(cualo.elements[m].name.length-1) == ""){
            if(
cualo.elements[m].value==""){
                
alert("Debe poner un " cualo.elements[m].name.substring(0,cualo.elements[m].name.length-1))
                
cualo.elements[m].focus()
                return 
false
                
break;
                }
                if(
cualo.elements[m].name=="Email" || cualo.elements[m].name=="Email*"){
                    
pat=/^[w_.çñ]{2,255}@[w]{2,255}.[a-z]{1,3}.?[a-z]{0,3}$/
                    if(!
pat.test(cualo.elements[m].value)){
                        
alert("Introduzca un E-mail válido")
                        
cualo.elements[m].focus()
                        return 
false
                    
}
                }
            else{
                continue
            }
        }
    }
}
</script> 
y de esta manera mandaras llamarlo
Código PHP:
<form name="form1" method="post"          action="loquesea" onSubmit="return          verificarFormu(this)"
en los campos, a la vuelta por el for
Código PHP:
%>
    <
tr>
        <
td>IMEI:&nbsp;<input type="text" name="imei<%response.write(i)%>*"/></td>
        <
td>ICC:&nbsp;<input type="text" name="icc<%response.write(i)%>*"/></td>
        <
td>DN:&nbsp;<input type="text" name="dn<%response.write(i)%>*"/></td>
    </
tr>
<%
next%> 
en esta funcion, detectara que no haya campos vacios, ahora solo habria que tomarla como referencia para modificar los IF para evaluacion de inputs contra inputs

te sirve esto?
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #5 (permalink)  
Antiguo 23/04/2008, 11:44
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Re: Validación de múltiples cadenas...

Yo no creo que en este caso sea recomendable la validación en JavaScript, pues estamos hablando de un proceso crítico de inserción de datos, en donde se supone no debería haber duplicados, si yo desactivo JavaScript, entonces podría envíar registros duplicados a la base de datos, además me parece que este tipo de validación recursiva debe ser mucho más eficiente del lado del servidor.

Según entiendo se deben validar entre sí, y pueden llegar a ser más de 100, realmente es muy peligroso hacerlo con JavaScript. El proceso para tendría que ser básicamente dos ciclos, el externo para iterar el número de elementos de una colección (un arreglo formado con request.form), y el interno para comparar el elemento iterado en ese momento con cada uno de los elementos del arreglo en el índice de i+1, si encuentras uno igual, terminas el ciclo y lo regresas, de lo contrario, todo prosigue.

Es solo una idea de la implementación, como empezar te corresponde a tí.


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 23/04/2008, 11:52
Avatar de 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, hasta hoy puede ver tu pregunta que espero aun te sirva mi respuesta.
No indicas si la validación es solo por grupos de IMEI's, ICC's y DN's o completamente todos entre si, por lo que supondre que es esta ultima.

La solucion es sencilla, pero empecemos por el primer codigo en HTML:

<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>


Ahora el codigo de la funcion en Javascript seria la siguiente:

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);
}

}

//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);
}

}


//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);
}

}

intContador++;
}

}


}


Espero tu comentarios, o escribeme a [email protected]
Saludos !!

Atte.

Reyleo
  #7 (permalink)  
Antiguo 23/04/2008, 11:59
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Re: Validación de múltiples cadenas...

Cita:
El proceso para tendría que ser básicamente dos ciclos, el externo para iterar el número de elementos de una colección (un arreglo formado con request.form), y el interno para comparar el elemento iterado en ese momento con cada uno de los elementos del arreglo en el índice de i+1, si encuentras uno igual, terminas el ciclo y lo regresas, de lo contrario, todo prosigue.
Hola master, se me ocurre que se podría ordenar el array y comparar el elemento actual con el siguiente. ¿Sería menos costoso así?
__________________
...___...
  #8 (permalink)  
Antiguo 23/04/2008, 12:11
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Re: Validación de múltiples cadenas...

Cita:
Iniciado por Al Zuwaga Ver Mensaje
Hola master, se me ocurre que se podría ordenar el array y comparar el elemento actual con el siguiente. ¿Sería menos costoso así?
Holas AZ, si, me imagino que definitivamente es más eficiente si al ordenar se hacen las comparaciones, y si implementamos algún algoritmo no tan costoso -QuickSort me viene a la mente- mucho mejor.

Salú
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 23/04/2008, 12:13
Avatar de Reyleo  
Fecha de Ingreso: julio-2006
Mensajes: 6
Antigüedad: 18 años, 10 meses
Puntos: 1
Re: Validación de múltiples cadenas...

El metodo que propongo es muy eficiente, facil de implementar y ayuda a que el servidor no trabaje innecesariamente(principal funcion del javascript). En caso de que se quiera tener la seguridad de la activación del Javascript en los navegadores, se puede obligar al usuario a activarlo al cambiar los botones de tipo Submit por simples controles de tipo button e invocar el evento submit en la validacion de una funcion javascript, de esa forma si el usuario desactiva el javascript simplemente no podrá pasar a la siguiente pantalla.

P.D. Como puedo hacer en esta herramienta colocar el codigo dentro de los cuadros que usan para tal fin, no se que control es.

Atte.

Reyleo
  #10 (permalink)  
Antiguo 23/04/2008, 12:21
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Re: Validación de múltiples cadenas...

Y si en vez de QuickSort usamos esto?

Cita:
Iniciado por Myakire Ver Mensaje
Aquí hay un ejemplo de uso e interacción de los dos lenguajes en la misma página:
Código:
<script language=JScript runat=server>
    function SortVBArray(arrVBArray) {
        return arrVBArray.toArray().sort().join('\b');
    }
</script>

<%
arrInput = Split("6,2,9,3,5,1",",")
SortArray = Split(SortVBArray(arrInput), Chr(8))
for i=0 to UBound(SortArray)
    response.write SortArray(i) & ", "
next
%>



Cita:
Iniciado por Reyleo
P.D. Como puedo hacer en esta herramienta colocar el codigo dentro de los cuadros que usan para tal fin, no se que control es.
Hola Reyleo, podés usar los vBCODE [ CODE ] [ /CODE ] (sin los espacios) para tal fin
__________________
...___...
  #11 (permalink)  
Antiguo 23/04/2008, 12:23
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Re: Validación de múltiples cadenas...

Cita:
Iniciado por Reyleo Ver Mensaje
El metodo que propongo es muy eficiente, facil de implementar y ayuda a que el servidor no trabaje innecesariamente(principal funcion del javascript). En caso de que se quiera tener la seguridad de la activación del Javascript en los navegadores, se puede obligar al usuario a activarlo al cambiar los botones de tipo Submit por simples controles de tipo button e invocar el evento submit en la validacion de una funcion javascript, de esa forma si el usuario desactiva el javascript simplemente no podrá pasar a la siguiente pantalla.

P.D. Como puedo hacer en esta herramienta colocar el codigo dentro de los cuadros que usan para tal fin, no se que control es.

Atte.

Reyleo
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)


Salud
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #12 (permalink)  
Antiguo 23/04/2008, 12:24
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Re: Validación de múltiples cadenas...

Cita:
Iniciado por Al Zuwaga Ver Mensaje
Y si en vez de QuickSort usamos esto?
Nah, ese lo propocionó Myakire
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #13 (permalink)  
Antiguo 23/04/2008, 12:44
Avatar de 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
  #14 (permalink)  
Antiguo 23/04/2008, 12:49
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Re: Validación de múltiples cadenas...

Bueno, ahí están las aportaciones sobre la mesa, ya le tocará a ciisteado elegir, ya me voy antes de que regrese AZ a corregirme

P.D. Reyleo, para las citas, puedes utilizar las etiquetas [ QUOTE ][ /QUOTE ]

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #15 (permalink)  
Antiguo 23/04/2008, 13:27
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Re: Validación de múltiples cadenas...

Yo no corrijo a nadie! Sólo sugiero ideas ;)
__________________
...___...
  #16 (permalink)  
Antiguo 24/04/2008, 08:57
Avatar de 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>
  #17 (permalink)  
Antiguo 24/04/2008, 09:31
Avatar de ciisteado  
Fecha de Ingreso: enero-2008
Ubicación: Home Office
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 0
De acuerdo Re: Validación de múltiples cadenas...

Hey Reyleo:

¡¡Caramba..!! no me queda más que agradecerte y felicitarte por tan oportuna respuesta...

La verdad es que funciono a la perfección, no tengo absolutamente ninguna queja...

Otra ves gracias y en horabuena por gente como tú, dispuesta a colaborar con nosotros los que empezamos en esto...

Y de alguna u otra forma a todos los que aportaron ideas a este "trauma"

Gracias a:

Shiryu_Libra
u_goldman
Al Zuwaga


Saludos a todos...

Última edición por ciisteado; 24/04/2008 a las 09:45
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:02.