Я делаю поддельный сайт гороскопа как маленький проект, и у меня возникли некоторые проблемы с этой последней функциональностью. В настоящее время пользователь вводит дату, место рождения и некоторую другую информацию, а затем нажимает кнопку «Отправить», вызывает функцию, которая анализирует информацию о дате и выдает предупреждение с другим абзацем, в зависимости от того, каким астрологическим знаком он является. Это работает нормально, но не красиво.
Вместо этого, я бы предпочел, чтобы кнопка отправки вызывала модальное окно, и там появлялся тот же абзац (опять же, в зависимости от того, что они изменили, ввод даты). to).
Я очень плохо знаком с HTML и JavaScript, поэтому на все прочитанные мною вопросы "Передача данных в модальные" есть ответы, которые мне просто не нравятсянасколько я могу судить. Вот HTML-код, который у меня есть на данный момент. Я вырезал некоторые посторонние входные данные, которые на самом деле ничего не делают, кроме того, что не разрешают отправку до тех пор, пока они не заполнены, и абзацы, которые являются просто длинными строками:
<body>
<header>
</header>
<main>
<div id="zodiacModal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 id="zodiacModalTitle" class="modal-title">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>Where I need the paragraph</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<form class="needs-validation" onsubmit="test(); return false;" novalidate>
<div class="form-row">
<div class="col-sm mb-3">
<label for="birthdate">Birthdate</label>
<input id="birthdate" class="form-control" type="date" value="2000-01-01" required>
</div>
</div>
<div class="form-group">
<div class="form-check">
<input id="terms" class="form-check-input" type="checkbox" value="" required>
<label class="form-check-label" for="terms">
I believe.
</label>
<div class="invalid-feedback">
You must believe before submitting.
</div>
</div>
</div>
<button class="btn btn-primary" type="submit">Submit Form</button>
</form>
</main>
<script>
function test()
{
// Declare and initialize variables with strings for each sign here
var date = document.querySelector("#birthdate").value.slice(5).split("-");
var month = parseInt(date[0], 10), day = parseInt(date[1], 10);
var signs = ["", capricorn, aquarius, pisces, aries, taurus, gemini, cancer, leo, virgo, libra, scorpio, saggitarius, capricorn];
var days = [0, 20, 19, 20, 20, 21, 21, 22, 22, 23, 23, 22, 21];
alert((day > days[month]) ? signs[month + 1] : signs[month]);
}
</script>
Из документации видно, что мне нужно изменить кнопку отправки на что-то вроде этого:
<button type="submit" class="btn btn-primary" data-toggle="modal" data-target="#zodiacModal">
TL; DR: я хочу заменить предупреждение, которое появляется при отправке формы (которая имеетдругой параграф в теле в зависимости от ввода даты) с модальным, который делает то же самое. Любые нуб-дружественные объяснения того, что мне нужно сделать здесь, будут очень благодарны.