Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Duda formulario HTML y javascript

Estas en el tema de Duda formulario HTML y javascript en el foro de Javascript en Foros del Web. Para validar un FORM he creado esta función a la que le paso como parámetro el objeto this Código: <script type="text/javascript"> function validarForm(formulario) { if(formulario.nombre.value.length==0) ...
  #1 (permalink)  
Antiguo 11/03/2013, 16:48
 
Fecha de Ingreso: agosto-2004
Mensajes: 85
Antigüedad: 19 años, 8 meses
Puntos: 0
Duda formulario HTML y javascript

Para validar un FORM he creado esta función a la que le paso como parámetro el objeto this

Código:
<script type="text/javascript">

function validarForm(formulario) {
  if(formulario.nombre.value.length==0) { //comprueba que no esté vacío
    formulario.nombre.focus();   
     alert('Escribe tu nombre');
    return false; //devolvemos el foco
  }
}
</script>
Lo que me gustaría es no tener que pasar el this y capturar el formulario antes de la función. He intentado esto poniendole un id al FORM:

Código:
<script type="text/javascript">
var frm=document.getElementById("formula");

function validarForm() {
  if(frm.nombre.value.length==0) { //comprueba que no esté vacío
    frm.nombre.focus();   
     alert('Escribe tu nombre');
    return false; //devolvemos el foco
  }
}
</script>
Y esto también intentando capturarlo por el nombre:

Código:
<script type="text/javascript">
var frm=document.nombreFormulario;

function validarForm() {
  if(frm.nombre.value.length==0) { //comprueba que no esté vacío
    frm.nombre.focus();   
     alert('Escribe tu nombre');
    return false; //devolvemos el foco
  }
}
</script>
Por favor una ayudita.
  #2 (permalink)  
Antiguo 11/03/2013, 17:33
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Duda formulario HTML y javascript

Pero el problema cual es

Código HTML:
Ver original
  1. <script type="text/javascript">
  2. //<![CDATA[
  3. function valida(){
  4. var f = document.getElementById('xa');
  5. alert(f.nombre.value);
  6. return false;
  7. }
  8.  
  9. function valida2(frm){
  10. alert(frm.nombre.value);
  11. return false;
  12. }
  13. //]]>
  14.  
  15. <form id="xa">
  16. <input type="text" name="nombre">
  17. <input type="button" onclick="return valida()" value="val" />
  18. </form>
  19.  
  20. <form onsubmit ="return valida2(this)";>
  21. <input type="text" name="nombre">
  22. <input type="submit" onclick=" value="val" />
  23. </form>

incluso podrías poner simplemente un id al campo de texto y validar contra ese elemento

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 12/03/2013, 13:17
 
Fecha de Ingreso: agosto-2004
Mensajes: 85
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta: Duda formulario HTML y javascript

Muchisimas gracias.

La solución era simple. No podía declara la variable que captura al FORM fuera de la función como global.

Código:
<script type="text/javascript">
var frm=document.getElementById("formula");

function validarForm() {
  
  if(frm.nombre.value.length==0) { //comprueba que no esté vacío
    frm.nombre.focus();   
     alert('Escribe tu nombre');
    return false; //devolvemos el foco
  }
}
</script>
Tenía que declararla dentro de la función como local, así:

Código:
<script type="text/javascript">

function validarForm() {
var frm=document.getElementById("formula");
  if(frm.nombre.value.length==0) { //comprueba que no esté vacío
    frm.nombre.focus();   
     alert('Escribe tu nombre');
    return false; //devolvemos el foco
  }
}
</script>
Incluso se puede capturar el formulario por su nombre a traves del objeto document sin tener que usar un atributo id:

Código:
<script type="text/javascript">

function validarForm() {
  var frm=document.nombreForm
  if(frm.nombre.value.length==0) { //comprueba que no esté vacío
    frm.nombre.focus();   
     alert('Escribe tu nombre');
    return false; //devolvemos el foco
  }
}
</script>
  #4 (permalink)  
Antiguo 12/03/2013, 13:40
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Duda formulario HTML y javascript

Todavía no entiendo la gracia del ejemplo,

podés acceder al form por su id
por su name
por su etiqueta y el indice en el caso de que hubiera varios forms, lo mismo para los elementos del form

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es-ar">
  3. <meta charset="utf-8" />
  4. <title>Html5</title>
  5. function fnc(){
  6. alert(document.forms[0].nombre.value);
  7. alert(document.forms[0].elements[0].value);
  8. alert(document.forms[1].nombre.value);
  9. alert(document.forms[1].elements[0].value);
  10. alert(document.forms[1].elements[1].value);
  11. }
  12. </head>
  13. <input type="text" name="nombre">
  14. </form>
  15. <p>form 2</p>
  16. <input type="text" name="nombre"><br>
  17. <input type="text" name="apellido">
  18. </form>
  19. <button onclick="fnc();">valores de los form 1 y 2</button>
  20. </body>
  21. </html>

__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: formulario, html
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 04:55.