Как получить такой эффект, что если отображается сообщение об ошибке, форма не должна потерять свою непрозрачность, но если сообщение об ошибке скрыто, прозрачность следует применять только при наведении формы?
HTML:
<section>
<form id="form" name="form" action="login.php" method="post">
<ul>
<li>
<span class="er" style="display:none;"> </span>
</li> <br />
<li>
<label for="name">Name</label>
<input type="text" name="name" id="name" />
</li>
<li>
<label for="pass">Password</label>
<input type="password" name="pass" id="pass" />
</li>
</ul>
<input type="submit" value="Log In" />
</form>
</section>
CSS:
section {
opacity: 0.5;
transition: all 1s ease-in-out;
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
-o-transition: all 1s ease-in-out;
}
section:hover{
opacity: 100;
transition: all 1s ease-in-out;
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1 ease-in-out;
-o-transition: all 1s ease-in-out;
}
JQuery:
$('#form').bind('submit', function (e) {
var self = $(this);
jQuery.post(self.attr('action'), self.serialize(), function (response) {
if ($("#name").val() == "" || $("#pass").val() == "") {
$("span.er").text('Field cannot be blank!');
$("span.er").show();
}
else if (response.success) {
window.location.href='home.php';
} else {
$("span.er").text('Invalid username or password! Please try again.');
$("span.er").show();
}
}, 'json');
e.preventDefault(); //prevent the form being posted
});
Я пытался добавить эту строку в вышеупомянутую функцию jQuery, где span.er
установлен на show()
:
$("section").css('opacity', '100');
^ Этот параметр следует применять только тогда, когда span.er
является видимым. Однако проблема заключается в том, что после отображения сообщения об ошибке настройка непрозрачности применяется независимо от того, является ли span.er
видимым или скрытым.