Проблемы с домашней работой с inner.html в javascript - PullRequest
0 голосов
/ 28 марта 2019

Для домашней работы мне нужна программа, которая может рассчитывать день и месяц и знак зодиака.Я уже нашел алгоритм, но у меня возникли проблемы.Я использую inner.html, чтобы изменить абзац h4 на вычисляемый знак, он просто остается в течение нескольких секунд, а затем исчезает.

function calcular(_dia, _mes) {
  var _mes = document.getElementById('mes').value;
  var _dia = document.getElementById('dia').value;
  var signo = "";

  if (_mes == 12, _dia < 22) {
    signo = "Sagitario";
  } else {
    signo = "Capricornio";
  }

  if (_mes == 1, _dia < 20) {
    signo = "Capricornio";
  } else {
    signo = "Acuario";
  }

  if (_mes == 2, _dia < 19) {
    signo = "Acuarios";
  } else {
    signo = "Piscis";
  }

  if (_mes == 3, _dia < 21) {
    signo = "Piscis";
  } else {
    signo = "Aries";
  }
  if (_mes == 4, _dia < 20) {
    signo = "Aries";
  } else {
    signo = "Tauro";
  }
  if (_mes == 5, _dia < 21) {
    signo = "Tauro";
  } else {
    signo = "Geminis";
  }

  if (_mes == 6, _dia < 21) {
    signo = "Geminis";
  } else {
    signo = "Cancer";
  }

  if (_mes == 7, _dia < 23) {
    signo = "Cancer";
  } else {
    signo = "Leo";
  }

  if (_mes == 8, _dia < 23) {
    signo = "Leo";
  } else {
    signo = "Virgo";
  }

  if (_mes == 9, _dia < 23) {
    signo = "Virgo";
  } else {
    signo = "libra";
  }

  if (_mes == 10, _dia < 23) {
    signo = "Libra";
  } else {
    signo = "Escorpio";
  }

  if (_mes == 11, _dia < 22) {
    signo = "Escorpio";
  } else {
    signo = "Sagitario";
  }




  document.getElementById("s_z").innerHTML = signo;

}
<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="initial-scale=1.0">
  <title>zodiaco</title>
</head>

<body class="body page-zodiaco clearfix">
  <div class="regresar regresar-1 clearfix">
    <div class="element"></div>
    <button onClick="window.location='index.html';" class="regresar"></button>
  </div>
  <div class="contenedor">
    <form name="z" method="post">
      <div class="principal clearfix">
        <div class="element"></div>
        <p class="text text-1">Mi signo es</p>
        <p class="text text-2">Nombre</p>
        <p class="text text-3">Dia</p>
        <input class="_input _input-1 js-nombre" id="nombre" name="nombre" type="text">
        <input class="_input _input-2 js-dia" id="dia" name="dia" type="number">
        <input class="_input _input-3 js-mes" id="mes" name="mes" type="number">
        <p class="text text-4">Mes</p>
        <input class="_input _input-4 js-año" name="año" type="number">
        <p class="text text-5">Año</p>
        <button onclick="calcular();" name="btncrear" id="signo" class="_button">Calcular tu signo</button>
      </div>
      <div class="resultado">
        <h4 id='s_z'>signo zodiacal</h4>
      </div>
    </form>
  </div>
</body>

</html>

1 Ответ

1 голос
/ 28 марта 2019

во-первых, ваш открывающий тег <form> не закрыт ('>' отсутствует).

Теперь ваша проблема: когда вы нажимаете на кнопку, форма отправляется и запускает обновление страницы.Поскольку у вас нет атрибута действия в форме, он возвращает вас на ту же страницу.Это обновление очищает результат, который вы только что написали в html.

Вы можете:

  • удалить тег формы (простой, но не чистый код, поскольку вы четко определяетепользовательская форма)
  • использовать событие отправки формы и предотвратить поведение по умолчанию (без обновления / перенаправления)
  • предотвратить поведение по умолчанию для события нажатия вашей кнопки.

https://developer.mozilla.org/en/docs/Web/API/Event/preventDefault Я дам вам узнать, как это сделать, в этом и заключается цель домашней работы, верно?:)

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...