Форма авторизации
Здравствуйте!
Подскажите, пожалуйста, как правильно реализовать мою затею, заключающююся в следующем: Есть форма входа - два поля 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, время: 21:42. |