Foros del Web » Programando para Internet » Javascript »

script de karlankas, validar un formulario iluminando los errores

Estas en el tema de script de karlankas, validar un formulario iluminando los errores en el foro de Javascript en Foros del Web. Una forma de validar un formulario iluminando errores. Ese post lo escribió karlankas y se encuentra en las faqs. Está genialísimo. Pero me ha surgido ...
  #1 (permalink)  
Antiguo 12/12/2005, 11:35
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 6 meses
Puntos: 3
script de karlankas, validar un formulario iluminando los errores

Una forma de validar un formulario iluminando errores.

Ese post lo escribió karlankas y se encuentra en las faqs. Está genialísimo. Pero me ha surgido un problema y por mas que le doy vueltas no entiendo el motivo del error. Pues bien. Tengo un formulario con muchas cajitas en las que solo quiero que me escriban números, por lo tanto tengo en en la cajita el onKeyPress="LP_data()". Pero a su vez quiero validar el formulario del mismo modo que nos ha enseñado karlankas, para que no me escriban el 0 solamente.que siemperl o rellenen con un numero mas alto que el cero. y pongo en el formulario lo siguiente:

<form action="procesar.php" method="post" enctype="multipart/form-data" title="form_proveedor" onsubmit="return comprobar()"> del cual llamo al script de karlankas. Pero no me funciona, y el mismo script en uno mas sencillo sin ningun tipo de onkey press.. pues me funciona bien y en este no. Alguien sabe si se pueden mezclar o usar varios scripts a la vez con este fabuloso script de validacion de formularios??????????????????????????????????????? ????

Muchas gracias por adelantado a todos, un saludoooo
  #2 (permalink)  
Antiguo 19/12/2005, 09:58
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 6 meses
Puntos: 3
Eoo!!

un pokito de porfabooooo

En las cajitas de texto solo pueden escribir numeros gracias a una funcion echa en javascrip que llamo desde cada cajita con el onkeypress. Pues bien usando el scrip de karlankas que está muy bien, tengo un problema, no se como validar ese campo de onkeypres para que a parte de no escribir numeros tampoco me escriba el cero solamente, alguien tiene alguan idea, o aunque sea otro scripi que lo haga???

gracias y felices fiestass a todos!!!!
  #3 (permalink)  
Antiguo 19/12/2005, 11:01
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 11 meses
Puntos: 2
No sé si entendi, pero ¿Por que no llamas a la función karlankas desde dentro de la función comprobar?

Saludos y suerte.
  #4 (permalink)  
Antiguo 19/12/2005, 12:38
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 6 meses
Puntos: 3
buenas a toss!!

no se si habeis visto el script de karlankas, merece la pena, é un pofesioná
Pues en la función de karlankas, valida los campos para que no estén vacíos: para escribir números de teléfono aceptables, direcciones de email , etc, pero no se como hacer o como escribir para que no me deje escribir solamente un 0(cero) en la caja de texto.No sé ni siquiera si se puede hacer, por eso me gustaría que alguien me dijera por donde puedo ir o como puedo hacer, o que tengo que poner para que no me deje escribir el número cero solito.

gracias de antemanooo
  #5 (permalink)  
Antiguo 19/12/2005, 15:54
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 5 meses
Puntos: 61
Al sonido de tanto inmerecido elogio he venido a intentar resolver tu duda, susaninhax.

Podríamos ver el código de tu formulario?

En caso de no poder prueba a poner como regla del mensaje lo siguiente:

regla[n]="parseInt(valor)<1 ";

siendo n el número de caja que tenga.

Espero que te sirva...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #6 (permalink)  
Antiguo 20/12/2005, 02:52
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola a todos!!

pues he subido lo que sería el formulario a un sitio para que se peuda ver el formulario y como tengo echo el script, la direcciçon es :Prueba

he probado la regla que me has puesto pero no consigo que me valide el formulario, no se si es por otro script para que solo me escriba numeros...??? será por eso? se puede hacer todo desde tu script??? no se, en otros formularios me va de lujo pero en este no me tira. Debe escribirse cantidades y precios válidos y no 0 o letras

Y lo de los elogios son merecidos, porque gente como yo que estamos empezando, si no fuera por vosotros, no tiraríamos para arriba

Muchas gracias de antemano y saludossss
  #7 (permalink)  
Antiguo 20/12/2005, 04:17
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 5 meses
Puntos: 61
He metido la zarpa en tu código. Dime si así está bien:

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<
title>Biocarburantes CML -- Formulario Proveedor --</title>
<
link href="../../CSS/textos.css" rel="stylesheet" type="text/css">
<
style type="text/css">
<!--
body {
    
background-color#D9E1EC;
    
margin-left0px;
    
margin-top0px;
    
margin-right0px;
}
-->
</
style>
<
link href="../../CSS/formularios.css" rel="stylesheet" type="text/css">


<
script
    
colorMal="#FFEFD9"
    
colorBien="white"
    
bien=0;
    function 
comprobar(){ 
    
errores=""
    
mensaje2=""
    
f=document.forms[0];
    for(
a=0;a<24;a++){ 
    
valor=f.elements[a].value;
    
    if(
valor<1){ 
    
mensaje2=(f.elements[a].name.indexOf('cant')==-1)?"- Por favor, introduzca un precio mayor que cero en el producto "+(a-11):"- Por favor, introduzca una cantidad mayor que cero en el producto "+(a+1); 
    
errores+=mensaje2+"<br>"
    
f.elements[a].style.background=colorMal;} 
    else{
    
bien=1;
    
f.elements[a].style.background=colorBien;} 
    } 
    
pepe=document.getElementById("herror");
    
pepe.style.background=(errores!="")?colorMal:colorBien
    
pepe.style.border=(errores!="")?"solid 1px black":"none"
    
pepe.innerHTML=errores

    return (
errores=="" && bien==1
    }    
    
</script>
<script language="JavaScript" type="text/JavaScript">
<!-- insertar datos numericos en cantidad -->
function LP_data(){
var key=window.event.keyCode;//codigo de tecla.
if (key < 46 || key > 57){//si no es numero
window.event.keyCode=0;//anula la entrada de texto.
}
}
-->
</script>

<style type="text/css">
<!--
.Estilo1 {color: #FFFFFF}
-->
</style>
</head>

<body>
<table width="650"  border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td bgcolor="#CCCC33" class="negro_titulo">Formulario Proveedor </td>
  </tr>
  <tr>
    <td height="25"  bgcolor="#003366">&nbsp;</td>

  </tr>
  <tr>
    <td align="center" valign="top" bgcolor="#003366">
    
    
    <form action="procesar.php" method="post" enctype="multipart/form-data" title="form_proveedor" onsubmit="return comprobar()">
      <table width="639" border="1" cellpadding="0" cellspacing="1" bordercolor="#003366" bgcolor="#336799">
        <tr align="center" class="blanco">
          <td height="30"></td>
        </tr>
        <tr>

          <td align="center" valign="top" class="blanco">&nbsp;</td>
        </tr>
        <tr>
          <td height="40" align="left" valign="top" class="blanco">&nbsp;</td>
        </tr>
        <tr>
          <td valign="top"><table width="100%"  border="1" cellpadding="0" cellspacing="1" bordercolor="#DEDDCB" bgcolor="#FFFFFF">
              <tr>
                <td valign="top" bgcolor="#CCCC33" class="negro">Tipo de Producto</td>

                <td bgcolor="#F2F2EC" class="negro">1</td>
                <td bgcolor="#F2F2EC" class="negro">2</td>
                <td bgcolor="#F2F2EC" class="negro">3</td>
                <td bgcolor="#F2F2EC" class="negro">4</td>
                <td bgcolor="#F2F2EC" class="negro">5</td>
                <td bgcolor="#F2F2EC" class="negro">6</td>
                <td bgcolor="#F2F2EC" class="negro">7</td>
                <td bgcolor="#F2F2EC" class="negro">8</td>
                <td bgcolor="#F2F2EC" class="negro">9</td>
                <td bgcolor="#F2F2EC" class="negro">10</td>
                <td bgcolor="#F2F2EC" class="negro">11</td>
                <td bgcolor="#F2F2EC" class="negro">12</td>
                
              </tr>
              <tr>
                <td valign="top" bgcolor="#CCCC33" class="negro">Cantidad (Tm) </td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="cant[0]" type="text" class="cajas" id="cant1" size="4" onKeyPress="LP_data()"></td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="cant[1]" type="text" id="cant2" size="4"  class="cajas" onKeyPress="LP_data()"></td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="cant[2]" type="text" size="4" class="cajas" onKeyPress="LP_data()"></td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="cant[3]" type="text" size="4" class="cajas" onKeyPress="LP_data()"></td>

                <td bgcolor="#F2F2EC" class="cajas"><input name="cant[4]" type="text" size="4" class="cajas" onKeyPress="LP_data()"></td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="cant[5]" type="text" size="4" class="cajas" onKeyPress="LP_data()"></td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="cant[6]" type="text" size="4" class="cajas" onKeyPress="LP_data()"></td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="cant[7]" type="text" size="4" class="cajas" onKeyPress="LP_data()"></td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="cant[8]" type="text" size="4" class="cajas" onKeyPress="LP_data()"></td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="cant[9]" type="text" size="4" class="cajas" onKeyPress="LP_data()"></td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="cant[10]" type="text" size="4" class="cajas" onKeyPress="LP_data()"></td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="cant[11]" type="text" size="4" class="cajas" onKeyPress="LP_data()"></td>
                </tr>

              <tr>
                <td valign="top" bgcolor="#CCCC33" class="negro">Precio Ofertado &euro;/Tm </td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="precio[0]" type="text" class="cajas" id="precio1" size="3" onKeyPress="LP_data()">
&euro;</td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="precio[1]" type="text" class="cajas" size="3" onKeyPress="LP_data()">
&euro;</td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="precio[2]" type="text" class="cajas" size="3" onKeyPress="LP_data()">
&euro;</td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="precio[3]" type="text"  size="3" class="cajas" onKeyPress="LP_data()">

&euro;</td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="precio[4]" type="text"  size="3" class="cajas" onKeyPress="LP_data()">
&euro;</td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="precio[5]" type="text"  size="3" class="cajas" onKeyPress="LP_data()">
&euro;</td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="precio[6]" type="text"  size="3" class="cajas" onKeyPress="LP_data()">
&euro;</td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="precio[7]" type="text"  size="3" class="cajas" onKeyPress="LP_data()">
&euro;</td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="precio[8]" type="text"  size="3" class="cajas" onKeyPress="LP_data()">
&euro;</td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="precio[9]" type="text"  size="3" class="cajas" onKeyPress="LP_data()">

&euro;</td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="precio[10]" type="text"  size="3" class="cajas" onKeyPress="LP_data()">
&euro;</td>
                <td bgcolor="#F2F2EC" class="cajas"><input name="precio[11]" type="text"  size="3" class="cajas" onKeyPress="LP_data()">
&euro;</td>
                </tr>
              <tr>
                <td valign="top" bgcolor="#CCCC33" class="negro">Observaciones</td>
                <td colspan="12" valign="top" bgcolor="#F2F2EC" class="negro"><div align="justify">
                    <textarea name="observaciones" cols="80" id="observaciones"></textarea>

                </div></td>
              </tr>
          </table></td>
        </tr>
        <tr>
        <td height="44" colspan="2"  valign="top" class="negro" id="herror" style="font:normal 10px/15px verdana;padding:5px 5px 5px 5px;">&nbsp;</td>
      </tr>
        <tr align="center">
          <td height="40" class="naranja Estilo1">PODEMOS RECIBIR FLETES DESDE 5.000 A 24.000 Tm. </td>

        </tr>
        <tr align="center">
          <td><input type="hidden" id="suministros" name="suministros" value="">
              <input type="hidden" id="id_usuario" name="id_usuario" value="">
              <input type="hidden" id="tipo" name="tipo" value="">
              <input type="hidden" id="proceso" name="proceso" value="formulario_proveedor">
              <input name="imageField" type="image" src="enviar.jpg" align="center" width="95" height="35" border="0"></td>
        </tr>
      </table>

    </form>
    
    </td>
  </tr>
</table>
</body>
</html> 
Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #8 (permalink)  
Antiguo 20/12/2005, 06:07
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 6 meses
Puntos: 3
BUENOS DÍAS A TOOOSS!!!

Pues funciona estupendamente para las cajitas de cantidad. No me permite poner cero solito en cantidades, pero no funciona para precio. No se si se me ha pasado algo por alto, he revisado el codigo que me has puesto y el que está resaltado en color está totalmente igual. que puede ser???

MUCHSIIIISIMAS GRACIAS DE ANTEMANO, ya es un paso grandellevo ya con esto varias semanas.... imagínate XD

Pos muchas gracias y un saludo pa tosss!!!!!
  #9 (permalink)  
Antiguo 22/12/2005, 05:58
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 6 meses
Puntos: 3
jos no quiero ser una molestia, pero no me sale, lo he revisado una y otra vez, y modificado algunas expresiones por si acaso, pero sigo sin conseguir que me valide el precio.Cantidad funciona correctamenet pero el precio no? alguien me echa una última mano porfavorrr??????empiezo a estar desesperada...

de todos modos muchas gracias igualment felices fiestas para todos y que este año nuevo que sea mejor que el anterior
  #10 (permalink)  
Antiguo 22/12/2005, 06:18
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 5 meses
Puntos: 61
En cuanto tenga un segundito lo miro!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
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 15:42.