Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Ayuda con ejercicio/ Javascript



que tal amigos, eh estado probando diferentes ideas ,seguí diferentes tutoriales, sobre la función keypress, pero aun estoy al 50% de mi idea, el objetivo de mi ejercicio es el siguiente:
1., capturar lo que el usuario escribe en el campo nombre, SIN que pulse en el boton enviar, intente también en el evento change, pero no tuve éxito, hasta ahora el que mas se acerca al objetivo es keypress
2., una vez logrado capturar la información del input nombre, requiero almacenar esas tecla capturadas , en una bd de mysql, el reto aca,vuelvo a reiterarlo capturar la información en la bd, sin que el usuario pulse en el botón "Enviar", acá mi codigo, es un formulario breve,


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
    <title>Ejercicio Practico Formulario </title>
</head>
<body>

    
<form method="post" >
  <div class="form-row">
    <div class="form-group col-md-6">

    <div class="input-group-lg">
		<!-- aca añadi dentro del input la funcion onkeypress-->				
	<input type="text" id="nOpinion"  onkeypress="myFunction()" class="form-control my-3" placeholder="Tu nombre" name="nombre_user" required>

	<input type="email" id="nEmail"  class="form-control my-3" placeholder="Tu email" name="correo_user" required>
    </div>
  
  <div class="form-group">
    <label for="inputAddress">Direccion</label>
    <input type="text" class="form-control" id="inputAddress"  name="direccion" placeholder="Inserta tu direccion">
  </div>
  <div class="form-group row">
  <label for="example-tel-input" class="col-2 col-form-label">Telefono</label>
  <div class="col-10">
    <input class="form-control" type="tel"   name="telefono" id="example-tel-input">
  </div>
</div>
  <div class="form-group">
    <label for="inputAddress2">Referencias de lugar donde radica</label>
    <input type="text" class="form-control" id="inputAddress2"  name="referencias" placeholder="Casa,Departament,Oficina">
  </div>
  <div class="form-row">
    <div class="form-group col-md-6">
      <label for="inputCity">Ciudad</label>
      <input type="text" class="form-control"  name="ciudad" id="inputCity">
    </div>
    <div class="form-group col-md-4">
      <label for="inputState">Nacionalidad</label>
      <select id="inputState" class="form-control">
        <option selected>Mexicano...</option>
        <option> Argentina...</option>
        <option> Brasil...</option>
        <option> Española...</option>
        <option> Colombiana...</option>
      </select>
    </div>
    <div class="form-group col-md-2">
      <label for="inputZip">Codigo Postal</label>
      <input type="text" class="form-control"  name="cp" id="inputZip">
    </div>
  </div>
  <div class="form-group">

  <div class="form-group">
    <label for="exampleTextarea">Escriba su Opinion</label>
    <textarea class="form-control" id="exampleTextarea" rows="3"></textarea>
  </div>
   
  </div>
  <button type="submit" class="btn btn-primary">Enviar</button>
</form>



<script>
document.getElementById("nOpinion").onkeypress = function (){myFunction()};

function myFunction(){
  /* si me detecta la funcion pero no logro imprimirlo o embeberlo en el div que esta debajo  */
  alert("tecla pulsada en el campo nombre");
}
</script>

</head>
<body>
<h1>Información del teclado</h1>
   <p>Pulsa una tecla y te daré la información sobre la misma.</p>
   <div id="respuesta"><div>
</body>






</body>
</html> 
0
Puntos
1006
Visitas
2
Resp
Por Octavio1095 hace 43 meses
Principiante
Respuesta #1
Hola, por si lo necesitan...
1 - Al form le deben agregar el attributo name y ponerle un nombre que deseen quedando de la siguiente manera
<form method="post" name="formulario">
Luego en el script usan el siguiente código
<script>
let nombre = document.forms.formulario.elements.nombre_user
nombre.addEventListener('keyup', () => document.getElementById("respuesta").innerHTML = nombre.value)
</script>
En caso que usen el código brindado por Octavio1095 deben quitar
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
ya que funciona con jquery o simplemente la reemplazan por
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
y listo
0
Puntos
Por Miguel92 hace 27 meses
Principiante
Respuesta #2
PD: esto no lo almacenará en la bd, pero la pueden guardar en una variable antes de enviar los datos!
0
Puntos
Por Miguel92 hace 27 meses
Principiante
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate