У меня есть HTML-страница, на которой пользователь может войти в систему. Чтобы убедиться в правильности ввода, используются некоторые атрибуты тега кнопки.Например:
required=""
type="email"
pattern="[a-zA-Z0-9_]{1,20}"
В нижней части формы находится кнопка: <button onclick="submitData()"></button>
.Если пользователь нажимает на него, с вводом происходит что-то другое.
Теперь, если я использую type="button"
, будет выполнена функция submitData()
, но ввод не проверен.
Но если я использую type="submit"
, вход проверяется по определенным критериям, и страница немедленно перезагружается, поэтому я ничего не могу сделать с вводом.
Итак, как я могу создатькнопка, которая проверяет ввод, но не передает данные?
Заранее спасибо,
Леон
Пример фрагмента:
function submitData() {
//more stuff...
}
h1 {
width: 100%;
font-size: 18px;
background: #18aa8d;
color: white;
line-height: 150%;
border-radius: 3px 3px 0 0;
box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.2);
}
form {
font-family: Roboto, sans-serif;
box-sizing: border-box;
width: 260px;
margin: auto;
box-shadow: 2px 2px 5px 1px rgba(0, 0, 0, 0.2);
padding-bottom: 40px;
border-radius: 3px;
}
form h1 {
box-sizing: border-box;
padding: 20px;
}
input {
margin: 40px 25px;
width: 200px;
display: block;
border: none;
padding: 10px 0;
border-bottom: solid 1px #1abc9c;
-webkit-transition: all 0.3s cubic-bezier(0.64, 0.09, 0.08, 1);
transition: all 0.3s cubic-bezier(0.64, 0.09, 0.08, 1);
background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 96%, #1abc9c 4%);
background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 96%, #1abc9c 4%);
background-position: -200px 0;
background-size: 200px 100%;
background-repeat: no-repeat;
color: #0e6252;
}
input:focus, input:valid {
box-shadow: none;
outline: none;
background-position: 0 0;
}
input:focus::-webkit-input-placeholder, input:valid::-webkit-input-placeholder {
color: #1abc9c;
font-size: 11px;
-webkit-transform: translateY(-20px);
transform: translateY(-20px);
visibility: visible !important;
}
button {
border: none;
background: #1abc9c;
cursor: pointer;
border-radius: 3px;
padding: 6px;
width: 200px;
color: white;
margin-left: 25px;
box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.2);
}
button:hover {
-webkit-transform: translateY(-3px);
-ms-transform: translateY(-3px);
transform: translateY(-3px);
box-shadow: 0 6px 6px 0 rgba(0, 0, 0, 0.2);
}
input:focus::-webkit-input-placeholder, input:valid::-webkit-input-placeholder {
color: #1abc9c;
font-size: 11px;
-webkit-transform: translateY(-20px);
transform: translateY(-20px);
visibility: visible !important;
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Register</title>
</head>
<body>
<form>
<h1>Register</h1>
<input placeholder="Accountname"
name="accountname"
type="text"
required=""
autocomplete="off"
pattern="[a-zA-Z0-9_]{1,20}"
title="'a-z', 'A-Z', '0-9', '_'">
<input placeholder="Password"
name="password"
type="password"
required=""
pattern="[a-zA-Z0-9_]{8,}"
title="'a-z', 'A-Z', '0-9', '_'">
<button type="submit" onclick="submitData()">Submit</button>
</form>
</body>
</html>