Hola, haber necesito validar una caja de texto, donde si se introcen caracteres que no sean dentro de este rango = "0123456789" me devuelva un alert, e probado ejemplos que e visto por hay, pero no me funcionan
bichomen
| ||||
Hola paisano, mira a ver si este ejemplo te sirve
Código:
y a tu campo le pides...function revisa(que){ if(isNaN(que.value)){ alert('tu mensaje1') que.value = '' } else{ if(parseInt(que.value) != que.value){ alert('tu mensaje2') que.value = '' } } } <input type="text" onblur="revisa(this)" /> |
| ||||
se supone que el "que" es el name del textbox, pero no lo pasa, e intentado pasarle la ruta entera: window.docunment.form.name.value pero nada bichomen
__________________ "Se sabe con exactitud, con cuanta imprecisión, se sabe algo" Linux Registered User #320332 |
| ||||
ya pero para acceder al elemento, lo haces por en name, no? para identificarlo o tb por el numero de elemento que es, otra cosa es lo de "revisa(this)", por otro lado de formulario ya tengo una función(this), q funciona, yo no se si los "this" crean confunsión entre si bichomen
__________________ "Se sabe con exactitud, con cuanta imprecisión, se sabe algo" Linux Registered User #320332 |
| ||||
Cita: Nop. De hecho, en mi ejemplo, el campo ni tiene ni name si te fijas. El parámetro envía la referencia al objeto directamente, independientemente de el identificador que tenga.ya pero para acceder al elemento, lo haces por en name, no? Cita: No, ninguna. this será en cada momento el elemento que lo indique.por otro lado de formulario ya tengo una función(this), q funciona, yo no se si los "this" crean confunsión entre si Imagina que estás en la cola de la carnicería del super (el Jespac, por ejemplo) y estais haciendo cola varias personas y dicen "quién va ahora?" y tú dices "yop!" y la dependienta sabrá que te está atendiendo a tí, sabiéndo quién eres tú sin necesidad de conocer tu identidad. Pues es como si le hubieras pasado un this a la dependienta. oño, espero entiendas la alegoría y no pienses que me patina la neurona este domingo por la mañana.... |
| ||||
Otra cosa, estas lineas, no tendrian q llevar ; al final?? alert('tu mensaje1') que.value = '' bichomen
__________________ "Se sabe con exactitud, con cuanta imprecisión, se sabe algo" Linux Registered User #320332 |
| ||||
A ver, te he colgado el ejemplo en el servidor http://www.tunait.com/pruebas/bichomen.html Al perder el foco el campo se activa el script |
| ||||
ya, la idea ya la pillo, pero, como q no me va, y lo e pegado tal y como esta, sin tocar nada bichomen
__________________ "Se sabe con exactitud, con cuanta imprecisión, se sabe algo" Linux Registered User #320332 |
| ||||
... pues cuando te cuente dónde está el error.... lo tienes aquí <script type="text/javascript> function revisa(que) { if(isNaN(que.value)) { alert('tu mensaje') que.value = '' } else { if(parseInt(que.value) != que.value) { alert('tu mensaje') que.value = '' } } } </script> falta cerrar la comilla detrás de javascript <script type="text/javascript"> Al no estar cerrada no reconoce la función definida dentro |
| ||||
pues es verdad... pero sigue sin ir ya corregi el codigo en el servidor, puedes comprovarlo bichomen
__________________ "Se sabe con exactitud, con cuanta imprecisión, se sabe algo" Linux Registered User #320332 |
| ||||
aahhh, si que funciona, pero de una forma rara, yo introduzco, letras en el textbox y luego marco un checkbox, pero para q me salga el alert tengo q hacer click por encima de la página, y entonces es cuando sale el mensaje, seria mejor q saliese, al darle al enviar. lo q vengo a decir es q si le doy a enviar, sin pasar por la casilla se salta a la torera los alerts y envia el formulario bichomen
__________________ "Se sabe con exactitud, con cuanta imprecisión, se sabe algo" Linux Registered User #320332 Última edición por bichomen; 21/11/2004 a las 05:45 |
| ||||
Ya esta, ya lo arregle, gracias, siento haberte dado la lata bichomen
__________________ "Se sabe con exactitud, con cuanta imprecisión, se sabe algo" Linux Registered User #320332 |
| ||||
No me ha dado la lata, pero deberías sonreír un poco más ... igual, lo he probado y funciona "raro" Envía el formulario aunque no se hayan rellenado los campos En tu lugar, uniría todas las validaciones dentro de una sola función. Si quieres te hago un apaño |
| ||||
ok, pero no esta acabaro, falta validar el email y q no queren campo vacios por rellenar bichomen
__________________ "Se sabe con exactitud, con cuanta imprecisión, se sabe algo" Linux Registered User #320332 |
| ||||
Oye ahora meta letras o numeros me devuelve el alert, el primero :S bichomen
__________________ "Se sabe con exactitud, con cuanta imprecisión, se sabe algo" Linux Registered User #320332 |
| ||||
Bueno, ahí va
Código:
yá me contarás.... <html> <head> <title>Formulario</title> <head> <script type="text/javascript"> function validar(donde){ if(donde.nom.value == ""){ alert('Debes poner un nombre') donde.nom.focus() return false } if(donde.ape.value == ""){ alert('Debes poner tu apellido') donde.ape.focus() return false } if(donde.dir.value == ""){ alert('Debes poner una dirección') donde.dir.focus() return false } if(donde.cp.value == ""){ alert('debes especificar un código postal') donde.cp.focus() return false } if(isNaN(donde.cp.value)){ alert('Solo se admiten valores numericos, en el código postal') donde.cp.value = '' donde.cp.focus() return false } else{ if(parseInt(donde.cp.value) != donde.cp.value){ alert('Solo se admiten valores numericos, en el código postal') donde.cp.value = '' donde.cp.focus() return false } } if(donde.email.value == ''){ alert('Debe especificar un e-mail') donde.email.focus() return false } else{ if(donde.email.value.indexOf('@') ==-1){ alert('Debe especificar una dirección de e-mail válida') donde.email.focus() return false } } if (!donde.hob0.checked && !donde.hob1.checked && !donde.hob2.checked && !donde.hob3.checked && !donde.hob4.checked && !donde.hob5.checked && !donde.hob6.checked && !donde.hob7.checked && !donde.hob8.checked && !donde.hob9.checked && !donde.hob10.checked && !donde.hob11.checked && !donde.hob12.checked){ alert("No has marcado ninguna casilla, debes marcar como minimo una") return false } if (donde.hob12.checked && donde.otros.value=='') { alert('Si selecionas la casilla "Otros" debes de indicar que otros intereses tienes'); donde.otros.focus(); return false; } } </script> </head> <body> <form name="f1" method="post" onsubmit="return validar(this)" > <table border= "0"> <tr><td> Nombre: </td><td><input type="text" name="nom" /></td></tr> <tr><td>Apellidos: </td><td><input type="text" name="ape" /></td></tr> <tr><td>Dirección:</td><td> <input type="text" name="dir" /></td></tr> <tr><td>Codigo postal: </td><td><input type="text" name="cp" size="5" maxlength="5" /> ---> no letras</td></tr> <tr><td>Ciudad: </td><td> <select name="provincias"> <option value="provincia=01"> A CORUÑA</option> <option value="provincia=02"> ALAVA</option> <option value="provincia=03"> ALBACETE</option> <option value="provincia=04"> ALICANTE</option> <option value="provincia=05"> ALMERIA</option> <option value="provincia=06"> ASTURIAS</option> <option value="provincia=07"> AVILA</option> <option value="provincia=08"> BADAJOZ</option> <option value="provincia=09"> BALEARES</option> <option selected value="provincia=10"> BARCELONA</option> <option value="provincia=11"> BURGOS</option> <option value="provincia=12"> CACERES</option> <option value="provincia=13"> CADIZ</option> <option value="provincia=14"> CANTABRIA</option> <option value="provincia=15"> CASTELLON DE LA PLANA</option> <option value="provincia=16"> CEUTA</option> <option value="provincia=17"> CIUDAD REAL</option> <option value="provincia=18"> CORDOBA</option> <option value="provincia=19"> CUENCA</option> <option value="provincia=20"> GIRONA</option> <option value="provincia=21"> GRANADA</option> <option value="provincia=22"> GUADALAJARA</option> <option value="provincia=23"> GUIPUZCOA</option> <option value="provincia=24"> HUELVA</option> <option value="provincia=25"> HUESCA</option> <option value="provincia=26"> JAEN</option> <option value="provincia=27"> LA RIOJA</option> <option value="provincia=28"> LAS PALMAS</option> <option value="provincia=29"> LEON</option> <option value="provincia=30"> LLEIDA</option> <option value="provincia=31"> LUGO</option> <option value="provincia=32"> MADRID</option> <option value="provincia=33"> MALAGA</option> <option value="provincia=34"> MELILLA</option> <option value="provincia=35"> MURCIA</option> <option value="provincia=36"> NAVARRA</option> <option value="provincia=37"> OURENSE</option> <option value="provincia=38"> PALENCIA</option> <option value="provincia=39"> PONTEVEDRA</option> <option value="provincia=40"> SALAMANCA</option> <option value="provincia=41"> SANTA CRUZ DE TENERIFE</option> <option value="provincia=42"> SEGOVIA</option> <option value="provincia=43"> SEVILLA</option> <option value="provincia=44"> SORIA</option> <option value="provincia=45"> TARRAGONA</option> <option value="provincia=46"> TERUEL</option> <option value="provincia=47"> TOLEDO</option> <option value="provincia=48"> VALENCIA</option> <option value="provincia=49"> VALLADOLID</option> <option value="provincia=50"> VIZCAYA</option> <option value="provincia=51"> ZAMORA</option> <option value="provincia=52"> ZARAGOZA</option> </select> </td></tr> <tr><td>email </td><td><input type="text" name="email" /> ---> validar</td></tr> </table> <table border= "0" width="100%"> <tr><td colspan="3"> Intereses:</td></tr> <tr><td><input type="checkbox" name="hob0" />Musica</td> <td><input type="checkbox" name="hob1" />Cine</td> <td><input type="checkbox" name= "hob2" />Informatica</td> </tr><tr> <td><input type="checkbox" name="hob3" />Treato</td> <td><input type="checkbox" name="hob4" />Coches</td> <td><input type="checkbox" name="hob5" />Motos</td> </tr><tr> <td><input type="checkbox" name="hob6" />Mujer</td> <td><input type="checkbox" name="hob7" />Hombre</td> <td><input type="checkbox" name="hob8" />Videojuegos</td> </tr><tr> <td><input type="checkbox" name="hob9" />Politica</td> <td><input type="checkbox" name="hob10" />Cocina</td> <td><input type="checkbox" name="hob11" />Astronomia</td> </tr><tr> <td><input type="checkbox" name="hob12" />Otros:</td> </tr> </table> <textarea name="otros" width="50%"></textarea><br> <input type="submit" name="submit" value="Enviar" /> </form> </body> </html> |
| ||||
perfecto, solo una cosa, cuando pones el email, no compueba si se a puesto el punto, osea si escribo pepe@dominio lo coje como bueno creo q modifincado tu codigo seria algo asi if(donde.email.value.indexOf('@') ==-1 && ddonde.email.value.indexOf('.') ==-1){ alert('Debe especificar una dirección de e-mail válida') donde.email.focus() return false bichomen
__________________ "Se sabe con exactitud, con cuanta imprecisión, se sabe algo" Linux Registered User #320332 |
| |||
aca te dejo la solucion lo tenes funcionando en http://www.hospitalitaliano.org.ar/c...acto_index.php <html> <head> <title>Formulario de contacto</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" type="text/css" href="../../conf_estilos/default.css"> <script LANGUAGE="JavaScript"> <!-- Evita ek reenvio del formulario var cuenta=0; function enviado() { if (cuenta == 0) { cuenta++; return true; } else { alert("El siguiente formulario ya ha sido enviado, muchas gracias."); return false; } } // --> </script> <SCRIPT language=JavaScript>//--------------------------------------- VALIDA QUE LOS CAMPOS TENGAN ALGO Y EL MAIL TENGA @ Y PUNTO function Validar(form) { document.form.Submit.value="Enviando mensaje......."; document.form.Submit.disabled=true; if (form.nombreyapellido.value == "") { document.form.Submit.value='Enviar consulta'; alert("Por favor ingrese su Nombre y Apellido"); form.nombreyapellido.focus(); document.form.Submit.disabled=false; return; } if (form.telefono.value == "") { document.form.Submit.value='Enviar consulta'; alert("Por favor ingrese su telefono"); form.telefono.focus(); document.form.Submit.disabled=false; return; } if (form.email.value == "") { document.form.Submit.value='Enviar consulta'; alert("Por favor ingrese su dirección de e-mail"); form.email.focus(); document.form.Submit.disabled=false; return; } if (form.email.value.indexOf('@', 0) == -1 || form.email.value.indexOf('.com', 0) == -1) { document.form.Submit.value='Enviar consulta'; alert("Dirección de e-mail inválida"); form.email.focus(); document.form.Submit.disabled=false; return; } if (form.comentarios.value == "") { document.form.Submit.value='Enviar consulta'; alert("Por favor ingrese un comentario"); form.comentarios.focus(); document.form.Submit.disabled=false; return; } if (form.comentarios.value == "Ingrese aqui sus comentarios") { document.form.Submit.value='Enviar consulta'; alert("Por favor ingrese un comentario"); form.comentarios.focus(); document.form.Submit.disabled=false; return; } form.submit(); } </SCRIPT> <script language="JavaScript"> //--------------------------------------------------- SOLO SE INGRESAN NUMEROS Y EL GUION MEDIO var nav4 = window.Event ? true : false; function acceptnum(evt){ // Nota: para saber los numeros de las teclas ver la tabla ASCII var key = nav4 ? evt.which : evt.keyCode; return (key <= 13 || key == 45 ||(key >= 48 && key <= 57)); } </script> <script language="JavaScript"> //--------------------------------------------------- SOLO SE INGRESAN LETRAS Y EL PUNTO var nav4 = window.Event ? true : false; function acceptletras(evt){ // Nota: para saber los numeros de las teclas ver la tabla ASCII var key = nav4 ? evt.which : evt.keyCode; return (key == 13 || key == 8 || key == 46 || key == 32 || (key >= 97 && key <= 122) || (key >= 65 && key <= 90)); } </script> <script language="JavaScript"> //--------------------------------------------------- SOLO CARACTERES PARA MAIL var nav4 = window.Event ? true : false; function acceptmail(evt){ // Nota: para saber los numeros de las teclas ver la tabla ASCII var key = nav4 ? evt.which : evt.keyCode; return (key == 13 || key == 64 || key == 95 || key == 45 || key == 8 || key == 46 || key == 32 || (key >= 97 && key <= 122) || (key >= 65 && key <= 90) || (key >= 48 && key <= 57)); } </script> <script language="JavaScript"> //--------------------------------------------------- PASO AL OBJETO[NEXT] SI PULSO ENTER var nav4 = window.Event ? true : false; function esenter(evt,numform,next){ var key = nav4 ? evt.which : evt.keyCode; if (key == 13) document.forms[numform].elements[next].focus(); } //--> </script> <script language="JavaScript"> //--------------------------------------------------- BORRAR CONTENIDO SI ES LA PRIMERA VEZ var first=0; function borrarcontenido(campo){ if (first==0){ document.forms[0].elements[campo].value='' first=1; } } </script> </head> <body onLoad=this.form.nombreyapellido.focus()> <form name="form" method="post" action="enviar.php" onSubmit="return enviado()"> <table width="400" border="1" align="center"> <tr> <td> <table width="100%" border="0" bgcolor="#d4d4d4"> <tr> <td>Nombre y Apellido:</td> <td><input name="nombreyapellido" type="text" onKeyPress="return acceptletras(event)" onKeyUp="return esenter(event,0,1)" size="40"></td> </tr> <tr> <td>Teléfono:</td> <td><input name="telefono" type="text" onKeyPress="return acceptnum(event)" onKeyUp="return esenter(event,0,2)" size="40"></td> </tr> <tr> <td>Correo Electrónico:</td> <td><input name="email" type="text" onKeyPress="return acceptmail(event)" onKeyUp="return esenter(event,0,3)" size="40"></td> </tr> <tr> <td>Comentarios:</td> <td><textarea name="comentarios" cols="50" rows="5" onFocus="borrarcontenido(3)">Ingrese aqui sus comentarios</textarea></td> </tr> </table> </td> </tr> </table> <div align="center"><br> <input type="button" name="Submit" value="Enviar consulta" onclick=Validar(this.form) > </div> </form> </body> </html> |
| ||||
vaya LordCat, gracias, por el esfuerzo, pero tunait, ya me dio la solución, pero igualmente gracias bichomen
__________________ "Se sabe con exactitud, con cuanta imprecisión, se sabe algo" Linux Registered User #320332 |