Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.05.2012, 14:04
Новичок на форуме
Отправить личное сообщение для 4ex0V Посмотреть профиль Найти все сообщения от 4ex0V
 
Регистрация: 20.05.2012
Сообщений: 1

Форма авторизации
Здравствуйте!

Подскажите, пожалуйста, как правильно реализовать мою затею, заключающююся в следующем:

Есть форма входа - два поля 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.
Ответить с цитированием
  #2 (permalink)  
Старый 20.05.2012, 14:34
Аватар для cmd
cmd cmd вне форума
Профессор
Отправить личное сообщение для cmd Посмотреть профиль Найти все сообщения от cmd
 
Регистрация: 19.03.2011
Сообщений: 177

<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>
__________________
Cogito, ergo sum

Последний раз редактировалось cmd, 20.05.2012 в 14:38. Причина: спрятать submit забыл...
Ответить с цитированием
  #3 (permalink)  
Старый 20.05.2012, 16:39
Профессор
Отправить личное сообщение для tadjik1 Посмотреть профиль Найти все сообщения от tadjik1
 
Регистрация: 07.06.2011
Сообщений: 315

в jquery-стайле это будет так:

$('input').on('change', function() {
  checkLoginAndPassFields();
});


вообще говоря - не очень хороший тон играться с деревом, показывать и скрывать элементы. делайте лучше дизейбл.
Ответить с цитированием
  #4 (permalink)  
Старый 20.05.2012, 16:41
Профессор
Отправить личное сообщение для tadjik1 Посмотреть профиль Найти все сообщения от tadjik1
 
Регистрация: 07.06.2011
Сообщений: 315

cmd,
в jquery селекторы можно указывать через запятую

$('.loginTextField, .passTextField').change(function() {
  checkLoginAndPassFields();
});
Ответить с цитированием
  #5 (permalink)  
Старый 25.05.2012, 03:57
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

4ex0V,
Задачка не оч продумана, -чел может сойти с формы не добив букв - дернулась мышь или отвлёкся...

Типовое: - Забыл пароль, полез за бумажкой набив первые буквоцифры по памяти
Ответить с цитированием
  #6 (permalink)  
Старый 28.05.2012, 13:47
Профессор
Отправить личное сообщение для tadjik1 Посмотреть профиль Найти все сообщения от tadjik1
 
Регистрация: 07.06.2011
Сообщений: 315

nasqad,
чем плох вариант с function() {} ...? — правда не знаю, было бы интересно услышать мнение гуру.

по поводу change и keyup — не согласен с вами. я всегда использую чендж, это позволяет записывать в объект для отправки полную строку с логином и паролем, для чего проверять каждый символ и дергать функцию?

по поводу энтера, у меня умышленно не превентится это действие, т.к. очень многие пользователи привылки введя пароль нажимать на энтер, а не переводить мышку. не знаю насколько это кроссбраузерно, пишу только под совр хром и фф 8+. чендж, кстати, при этом отлично срабатывает

ну а функция on, позволяет повесить обработчик на элемент при появлении его в доме, поправьте, но по-моему
$('.loginTextField, .passTextField').keyup(checkLoginAndPassFields);
не справится с ситуацией, когда элементов еще нет в доме, а скрипт загружен.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
форма авторизации urban Элементы интерфейса 5 25.01.2012 17:13
простая форма авторизации sedoyksa Общие вопросы Javascript 5 01.10.2011 22:29
не работает форма в окне, вызванном jquery page slide ikar jQuery 0 31.07.2011 22:55
Динамическая форма AnggelofDem Работа 12 06.06.2011 09:41
Всплывающая форма в центре страницы для гостевой книги angel-13th Элементы интерфейса 8 05.02.2011 20:10