Tarea anterior
Familiaridad con JavaScript15/16
A la lista de tareas
  1. 1. ¿Por qué necesitas JavaScript?
  2. 2. Familiarizándose con el cambio de temas
  3. 3. Encontrar un elemento usando querySelector
  4. 4. Envía el elemento a la consola
  5. 5. Eliminar una clase con classList.remove
  6. 6. Añadir una clase a un elemento utilizando classList.add
  7. 7. Declarar una variable
  8. 8. Conocer el manejador de eventos
  9. 9. Cambiar tema pulsando
  10. 10. Conocer classList.toggle
  11. 11. Finalizar el cambio de tema
  12. 12. Conocer la propiedad textContent
  13. 13. Modificar el contenido del texto del elemento
  14. 14. Descomentemos el código
  15. 15. Obtener datos del campo de entrada utilizando input.value
  16. 16. Uso de la concatenación
Siguiente tarea
  • Cursos
  • Registro
  • Iniciar sesión

Loading…
En unos segundos, estará listo.

  • Teoría
  • Teoría

Obtener datos del campo de entrada utilizando input.value

Hemos aprendido a utilizar un script para cambiar el texto de la página cuando un usuario envía un formulario. Necesitamos que el texto del mensaje sea así:

La dirección de e-mail se ha añadido a la lista de distribución.

La dirección de correo electrónico del mensaje debe ser la introducida por el usuario. ¿Cómo obtenerla?

Una propiedad especial que tienen los campos de entrada value nos ayudará. Supongamos que hay un campo de input en la página:

<input type="text">

El jefe pasaba por allí e introdujo allí su nombre: Cupcake. Usando la propiedad value podemos obtener datos de este campo de entrada. Y luego, por ejemplo, enviarlos a la consola:

let input = document.querySelector('input');
console.log(input.value);
// Impresiones: Cupcake

Estos datos pueden visualizarse directamente en la página:

let paragraph = document.querySelector('p');
paragraph.textContent = input.value;

Nuestro usuario introduce su dirección en un campo con la clase subscription-email. Busquemos el campo y digámosle a JavaScript que envíe los datos recibidos a la página.

  • index.html
  • style.css
  • script.js
HTML
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <link rel="stylesheet" href="setting.css"> <link rel="stylesheet" href="style.css"> <title>¡FlashNews!</title> </head> <body class="page light-theme"> <header class="page-header"> <div class="container"> <a class="header-link" href="#">Inicio</a> <button class="theme-button" type="button">Cambiar tema</button> </div> </header> <main class="inner-main"> <div class="container"> <h1 class="inner-heading">Suscríbase a nuestro boletín</h1> <p class="subscription-message">Nos comprometemos a enviarle noticias no más de una vez al día, y sólo las más interesantes e importantes.</p> <form action="https://echo.htmlacademy.ru/courses" method="post" class="subscription"> <div class="subscription-inner"> <label class="subscription-label" for="subscription-email">orreo electrónico</label> <input type="email" class="subscription-email" placeholder="keks@flashnews.es" value="keks@flashnews.es" required="" id="subscription-email"> </div> <button class="button subscription-button" type="submit">Suscríbase</button> </form> <section class="news-list list-tiles-view"> <h2 class="news-list-heading">O lea más noticias</h2> <article class="new-block"> <img src="img/new-graph.jpg" alt=""> <div class="new-block-text"> <h3>Nueva biblioteca para crear gráficos</h3> <p>Ahora puedes crear un cuadro de mando en cuestión de segundos.</p> <time datetime="2019-10-16">16 de octubre de 2019.</time> </div> </article> <article class="new-block"> <img src="img/new-robot.jpg" alt=""> <div class="new-block-text"> <h3>¿Qué pasa con los robots?</h3> <p>Se están haciendo muchas cosas interesantes en robótica, esta noticia podría haber tratado de eso, pero no.</p> <time datetime="2019-10-15">15 de octubre de 2019.</time> </div> </article> </section> </div> </main> <footer class="page-footer"> <div class="container"> <p>¡FlashNews!</p> <a class="footer-logo"> <img src="img/white-logo.svg" alt="FlashNews!"> </a> </div> </footer> <script src="script.js"></script> </body> </html>
CSS
/* Light theme */ .light-theme { color: #333333; background-color: #eae9f2; } .light-theme .page-header { background-color: #ffffff; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); } .light-theme .header-link { color: #6653d9; } .light-theme .header-link::before { background: url("img/arrow-back-light.svg") no-repeat 0 0; } .light-theme .theme-button { color: #6653d9; border: 1px solid #6653d9; } .light-theme .theme-button::before { background-image: url("img/moon-normal.svg"); } .light-theme .theme-button:focus, .light-theme .theme-button:hover { color: #ffffff; background-color: #6653d9; } .light-theme .theme-button:focus::before, .light-theme .theme-button:hover::before { background-image: url("img/moon-hover.svg"); } .light-theme .menu-open { background-color: #ffffff; background-image: url("img/menu-open-light.svg"); } .light-theme .menu-open:focus, .light-theme .menu-open:hover { background-color: #6653d9; background-image: url("img/menu-open-dark.svg"); } .light-theme .menu-close { background-color: #6653d9; } .light-theme .menu-close:focus, .light-theme .menu-close:hover { background-color: #473c8d; } .light-theme .main-menu { background-color: #6653d9; color: #ffffff; } .light-theme .main-menu a:focus, .light-theme .main-menu a:hover { background-color: #473c8d; } .light-theme .news-view button { border: 1px solid #6653d9; color: #6653d9; } .light-theme .news-view button:focus, .light-theme .news-view button:hover, .light-theme .news-view button:active, .light-theme .news-view .view-checked { background-color: #6653d9; color: #ffffff; } .light-theme .news-view .row-view:focus::before, .light-theme .news-view .row-view:hover::before, .light-theme .news-view .row-view:active::before { background-image: url("img/rows-light-checked.svg"); } .light-theme .news-view .tile-view:focus::before, .light-theme .news-view .tile-view:hover::before, .light-theme .news-view .tile-view:active::before { background-image: url("img/tiles-light-checked.svg"); } .light-theme .row-view::before { background-image: url("img/rows-light.svg"); } .light-theme .tile-view::before { background-image: url("img/tiles-light.svg"); } .light-theme .row-view::before { background-image: url("img/rows-light.svg"); } .light-theme .row-view.view-checked::before { background-image: url("img/rows-light-checked.svg"); } .light-theme .tile-view.view-checked::before { background-image: url("img/tiles-light-checked.svg"); } .light-theme .new-block { background-color: #ffffff; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); } .light-theme .new-block time { color: #aaaaaa; } .light-theme .cookies-agreement { background-color: #fdeacd; box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.2); } .light-theme .button { background-color: #6653d9; color: #ffffff; } .light-theme .button:focus, .light-theme .button:hover { background-color: #473c8d; } .light-theme .page-footer { background-color: #6653d9; color: #ffffff; } .light-theme .subscription { background-color: #ffffff; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); } .light-theme .subscription-message { background-color: #6653d9; color: #eae9f2; } .light-theme .subscription-message::before { background-image: url("img/icon-ok-light.svg"); } .light-theme .subscription-label { color: #6653d9; } .light-theme .subscription-email { border-bottom: 1px solid #6653d9; color: #333333; } /* Dark theme */ .dark-theme { color: #f2f2f2; background-color: #17161a; } .dark-theme .page-header { background-color: #373540; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); } .dark-theme .header-link { color: #9484f2; } .dark-theme .header-link::before { background: url("img/arrow-back-dark.svg") no-repeat 0 0; } .dark-theme .theme-button { color: #9484f2; border: 1px solid #9484f2; } .dark-theme .theme-button::before { background-image: url("img/sun-normal.svg"); } .dark-theme .theme-button:focus, .dark-theme .theme-button:hover { color: #17161a; background-color: #9484f2; } .dark-theme .theme-button:focus::before, .dark-theme .theme-button:hover::before { background-image: url("img/sun-hover.svg"); } .dark-theme .menu-open { background-color: #373540; background-image: url("img/menu-open-dark.svg"); } .dark-theme .menu-open:focus, .dark-theme .menu-open:hover { background-color: #473c8d; background-image: url("img/menu-open-dark.svg"); } .dark-theme .menu-close { background-color: #473c8d; } .dark-theme .menu-close:focus, .dark-theme .menu-close:hover { background-color: #6653d9; } .dark-theme .main-menu { background-color: #473c8d; color: #f2f2f2; } .dark-theme .main-menu a:focus, .dark-theme .main-menu a:hover { background-color: #6653d9; } .dark-theme .news-view button { border: 1px solid #9484f2; color: #9484f2; } .dark-theme .news-view button:focus, .dark-theme .news-view button:hover, .dark-theme .news-view button:active, .dark-theme .news-view .view-checked { background-color: #9484f2; color: #17161a; } .dark-theme .news-view .row-view:focus::before, .dark-theme .news-view .row-view:hover::before, .dark-theme .news-view .row-view:active::before { background-image: url("img/rows-dark-checked.svg"); } .dark-theme .news-view .tile-view:focus::before, .dark-theme .news-view .tile-view:hover::before, .dark-theme .news-view .tile-view:active::before { background-image: url("img/tiles-dark-checked.svg"); } .dark-theme .row-view::before { background-image: url("img/rows-dark.svg"); } .dark-theme .tile-view::before { background-image: url("img/tiles-dark.svg"); } .dark-theme .row-view.view-checked::before { background-image: url("img/rows-dark-checked.svg"); } .dark-theme .tile-view.view-checked::before { background-image: url("img/tiles-dark-checked.svg"); } .dark-theme .new-block { background-color: #2a2930; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.6); } .dark-theme .new-block time { color: #888888; } .dark-theme .cookies-agreement { background-color: #473c8d; box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.6); } .dark-theme .button { background-color: #9484f2; color: #17161a; } .dark-theme .button:focus, .dark-theme .button:hover { background-color: #b6aaff; } .dark-theme .page-footer { background-color: #0a0910; color: #f2f2f2; } .dark-theme .subscription { background-color: #2a2930; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.6); } .dark-theme .subscription-message { background-color: #9484f2; color: #17161a; } .dark-theme .subscription-message::before { background-image: url("img/icon-ok-dark.svg"); } .dark-theme .subscription-label { color: #9484f2; } .dark-theme .subscription-email { border-bottom: 1px solid #9484f2; color: #f2f2f2; }
JavaScript
let page = document.querySelector('.page'); let themeButton = document.querySelector('.theme-button'); themeButton.onclick = function() { page.classList.toggle('light-theme'); page.classList.toggle('dark-theme'); }; let message = document.querySelector('.subscription-message'); let form = document.querySelector('.subscription'); // Declare aquí la variable form.onsubmit = function(evt) { evt.preventDefault(); // Cambia el valor de textContent en la siguiente línea message.textContent = '¡Formulario enviado!'; };

El código ha cambiado, haz clic en "Actualizar" o activa la ejecución automática.

Ha ido a otra página

Haga clic dentro del mininavegador para poner el foco en esta ventana.

100%
Consola
ObjetivosRealizado
0
    1. En la línea 10, declara una variable email y escribe en ella un elemento con la clase subscription-email.
    2. Dentro del manejador de eventos, cambia el valor de message.textContent de '¡Formulario enviado!' a email.value.
    3. En el mininavegador, haga clic en el botón "Suscríbase" y asegúrese de que en la página aparece la misma dirección que en el campo de entrada.

    © 2023-2025, codigoheroe.com