Я работаю над обновлением/стилизацией сайта, поэтому я использовал пользовательскую кнопку отправки для формы входа. Однако при нажатии на кнопку «Отправить» без какого-либо действительного ввода стиль полностью меняется, и его положение прыгает:
Проблема: http://test.theobaart.com/ReWork/loginIssue.png
Живую версию можно увидеть здесь, а я использую плагин jQuery Validation (jqueryvalidation.org )
Соответствующий код выглядит следующим образом:
HTML:
<form id="createForm" method="post" action="create.php">
<label for="email">Email</label>
<input id="email" type="email" name="email"/>
<label for="password">Password</label>
<input id="password" type="password" name="password"/>
<input class="submit" type="submit" value="Login"/>
</form>
CSS:
/* Login form stuff */
form {
width: 100%;
margin: 0 auto;
}
label, input {
display: inline-block;
}
label {
width: 30%;
text-align: right;
}
label + input {
width: 60%;
margin: 10px 0 10px 4%;
}
/* Styling for input button */
input + input {
width: 20%;
max-width: 100px;
margin: 0 40% 10px 40%;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0px;
font-family: Arial;
color: #a6afb9;
font-size: 21px;
background: #fffffff;
padding: 10px 10px 10px 10px;
border: solid #5f6f81 2px;
text-decoration: none;
}
input + input:hover {
background: #5f6f81;
text-decoration: none;
}
#loginForm div.error {
width: 100%;
text-align: center;
color: red;
}
Помимо импорта jquery.validate.min.js
я также использую следующий скрипт:
$("#loginForm").validate({
errorElement: 'div',
rules: {
email:{required:true},
password: {required: true}
}
});
Я немного в растерянности относительно того, что это может быть (поэтому я и спрашиваю здесь), и, насколько мне известно, это не совсем распространенная проблема, поэтому я не смог найти ничего подходящего на переполнение стека/гугл. Любая помощь приветствуется!
Большое спасибо,
Тео
P.S. В последнюю минуту перепроверил, прежде чем опубликовать это. Кажется, это происходит только тогда, когда нижнее поле (пароль) недействительно. Когда недействительным является только поле электронной почты, изменения стиля не происходят.
errorElement
, заключается в том, что я хотел, чтобы возможные сообщения об ошибках проверки появлялись на следующей строке, а не после элемента ввода. Согласно другому вопросу stackoverflow (здесь добавлениеerrorElement: 'div'
решило эту проблему. - person Theo B.   schedule 09.06.2014