Форма авторизации
Здравствуйте!
Подскажите, пожалуйста, как правильно реализовать мою затею, заключающююся в следующем: Есть форма входа - два поля login и password, и, соответственно, submit.
<form method="post" action="authorization.php">
<div class="logReg">
<input type="text" class="loginTextField" placeholder="LOGIN" name="login">
<input type="password" class="passTextField" placeholder="PASSWORD" name="password">
<input type="submit" class="enterButton" value="Enter">
</div>
</form>
Кнопка submit изначально скрыта.
<script>
$(document).ready(function()
{
$(".enterButton").hide();
});
</script>
Я хочу средствами jQuery добиться следующего: если поля с логином и паролем не пустые, то опускается submit slideToggle. |
<form method="post" action="authorization.php">
<div class="logReg">
<input type="text" class="loginTextField" placeholder="LOGIN" name="login">
<input type="password" class="passTextField" placeholder="PASSWORD" name="password">
<input type="submit" class="enterButton" value="Enter">
</div>
</form>
<script>
function checkLoginAndPassFields() {
if ( $('.passTextField').val() && $('.loginTextField').val() ) {
$('.enterButton').show();
} else {
$('.enterButton').hide();
}
}
$('.loginTextField').change(function() {
checkLoginAndPassFields();
});
$('.passTextField').change(function() {
checkLoginAndPassFields();
});
$('.enterButton').hide();
</script>
|
в jquery-стайле это будет так:
$('input').on('change', function() {
checkLoginAndPassFields();
});
вообще говоря - не очень хороший тон играться с деревом, показывать и скрывать элементы. делайте лучше дизейбл. |
cmd,
в jquery селекторы можно указывать через запятую :)
$('.loginTextField, .passTextField').change(function() {
checkLoginAndPassFields();
});
|
4ex0V,
Задачка не оч продумана, -чел может сойти с формы не добив букв - дернулась мышь или отвлёкся... Типовое: - Забыл пароль, полез за бумажкой набив первые буквоцифры по памяти |
nasqad,
чем плох вариант с function() {} ...? — правда не знаю, было бы интересно услышать мнение гуру. по поводу change и keyup — не согласен с вами. я всегда использую чендж, это позволяет записывать в объект для отправки полную строку с логином и паролем, для чего проверять каждый символ и дергать функцию? по поводу энтера, у меня умышленно не превентится это действие, т.к. очень многие пользователи привылки введя пароль нажимать на энтер, а не переводить мышку. не знаю насколько это кроссбраузерно, пишу только под совр хром и фф 8+. чендж, кстати, при этом отлично срабатывает :) ну а функция on, позволяет повесить обработчик на элемент при появлении его в доме, поправьте, но по-моему
$('.loginTextField, .passTextField').keyup(checkLoginAndPassFields);
не справится с ситуацией, когда элементов еще нет в доме, а скрипт загружен. |
| Часовой пояс GMT +3, время: 10:54. |