Это не click
событие button
, которое вы должны настраивать, это submit
событие form
. Прямо сейчас вы пытаетесь установить событие submit
для button
вверх, но button
не имеет события submit
, а form
делает.
Затем простособытие (form.submit
) будет отменено.
Кроме того, не устанавливает события с помощью встроенных обработчиков событий HTML (то есть onclick
). Используйте .addEventListener()
, как показано ниже (и обсуждено в ссылке, которой я поделился).
document.querySelector("form").addEventListener("submit", function (event) {
event.preventDefault(); // <-- Prevents the native behavior of the event
var button = document.getElementById("press");
var name = document.getElementById("name").value;
var surname = document.getElementById("surname").value;
var mail = document.getElementById("mail").value;
var service = document.getElementById("service").value;
var mail_low = mail.toLowerCase();
document.getElementById("info").innerHTML = name+" "+surname+"<br/>"+mail_low+"<br/>"+"Service: "+service;
});
<form action="#">
Name: <input type="text" id="name"><br/>
Surname: <input type="text" id="surname"><br/>
E-mail: <input type="text" id="mail"><br/>
Serivce:
<select id="service">
<option>naprawa komputera</option>
<option>odzyskiwanie danych</option>
<option>problemy z oprogramowaniem</option>
<option>konfiguracja sieci LAN</option>
<option>inne</option>
</select><br/>
<input type="checkbox" checked="checked">Send copy information<br>
<button type="reset" value="Reset">Reset</button>
<button type="submit" value="Send" id="press">Send</button>
</form>
<p id="info"></p>
Но, что еще лучше, поскольку вы нигде не отправляете данные, вам не нужен элемент form
. Просто сделайте сброс вручную, и тогда вам не придется беспокоиться об отправке и отмене.
Кроме того, не используют самозавершающиеся теги (то есть <br/>
).
Я также реорганизовал ваш код для эффективности ниже.
// Get your DOM references just once, not every time the event happens.
// Also, make your variables reference the elements directly, not a property
// of the element, like .value. That way, if you ever need to access the
// element for a different reason, you don't have to scan the DOM for it again.
var name = document.getElementById("userName");
var surname = document.getElementById("surname");
var mail = document.getElementById("mail");
var service = document.getElementById("service");
var output = document.getElementById("info");
var reset = document.getElementById("reset");
document.getElementById("press").addEventListener("click", function (event) {
var mail_low = mail.value.toLowerCase();
output.innerHTML = userName.value + " " + surname.value + "<br>" +
mail_low + "<br>Service: " + service.value;
});
reset.addEventListener("click", function(){
name.value = "";
surname.value = "";
mail.value = "";
service.value = "";
output.innerHTML = "";
});
<div>
<!--
The default type for an input is text, so: type="text" is not needed.
Also, since you won't be submitting data anywhere, the name attribute isn't needed either.
-->
Name: <input id="userName"><br>
Surname: <input id="surname"><br>
E-mail: <input id="mail"><br>
Serivce:
<select id="service">
<option>naprawa komputera</option>
<option>odzyskiwanie danych</option>
<option>problemy z oprogramowaniem</option>
<option>konfiguracja sieci LAN</option>
<option>inne</option>
</select><br/>
<input type="checkbox" checked="checked">Send copy information<br>
<button id="reset" value="Reset">Reset</button>
<button type="button" value="Send" id="press">Send</button>
</div>
<p id="info"></p>