Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.02.2015, 09:25
Кандидат Javascript-наук
Отправить личное сообщение для Зосимов Посмотреть профиль Найти все сообщения от Зосимов
 
Регистрация: 11.02.2013
Сообщений: 102

Мгновенная проверка полей
всем привет.
подскажите как решить вопрос -
есть три поля формы
<input type="text" value="" name="userName"   id="userName">
<br>
<input type="text" value="" name="phone" id="phoneNumber">
<br>
<input type="text" value="" name="email" id="userEmail">

нужно сделать JS проверку - если ВСЕ 3 поля заполонены, то например вывести алерт какой нибудь.
ну и дальше могут быть еще поля, но главное проверить эти три. на лету по ходу заполнения формы

спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 05.02.2015, 09:46
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Так юзер только одну букву поставит в третье поле и оно будет считаться заполненным и вылезет алерт. Так и должно быть?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 05.02.2015, 10:46
Кандидат Javascript-наук
Отправить личное сообщение для Зосимов Посмотреть профиль Найти все сообщения от Зосимов
 
Регистрация: 11.02.2013
Сообщений: 102

нет. только если все три поля заполнены вылезет алерт
Ответить с цитированием
  #4 (permalink)  
Старый 05.02.2015, 10:52
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 182

var fields = {
  userName: false,
  phoneNumber: false,
  userEmail: false
};
var f = function(){
  switch (this.id) {
    case 'userName':
      fields[this.id] = this.value.match(...) ? true : false;
      break;
    case 'phoneNumber':
      fields[this.id] = this.value.match(...) ? true : false;
      break;
    case 'userEmail':
      fields[this.id] = this.value.match(...) ? true : false;
      break;
  }
  var sum = 0;
  for (var key in fields) {
    sum += fields[key] ? 1 : 0;
  }
  sum === 3 && alert('message')
};
$('#userName').change(f);
$('#phoneNumber').change(f);
$('#userEmail').change(f);


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

Последний раз редактировалось demoniqus, 05.02.2015 в 10:59.
Ответить с цитированием
  #5 (permalink)  
Старый 05.02.2015, 11:23
Кандидат Javascript-наук
Отправить личное сообщение для Зосимов Посмотреть профиль Найти все сообщения от Зосимов
 
Регистрация: 11.02.2013
Сообщений: 102

Спасибо demoniqus,
попробую
Ответить с цитированием
  #6 (permalink)  
Старый 05.02.2015, 11:30
Кандидат Javascript-наук
Отправить личное сообщение для Зосимов Посмотреть профиль Найти все сообщения от Зосимов
 
Регистрация: 11.02.2013
Сообщений: 102

Сообщение от demoniqus Посмотреть сообщение
$('#userName').change(f);
$('#phoneNumber').change(f);
$('#userEmail').change(f);


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

нашел функцию blur но только не совсем понял как ее использовать при проверке трех полей. или никак?
$('#name').blur(function(){}
Ответить с цитированием
  #7 (permalink)  
Старый 05.02.2015, 11:36
Кандидат Javascript-наук
Отправить личное сообщение для Зосимов Посмотреть профиль Найти все сообщения от Зосимов
 
Регистрация: 11.02.2013
Сообщений: 102

demoniqus,
с вашим примером не получается сделать проверку. ошибку выдает на строке case 'userName':
09
fields[this.id] = this.value.match(...) ? true : false;
Ответить с цитированием
  #8 (permalink)  
Старый 05.02.2015, 11:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от Зосимов
только если все три поля заполнены вылезет алерт
Как понять, что поле "заполнено"? Поскольку тебе объяснили выше
Сообщение от danik.js
Так юзер только одну букву поставит в третье поле и оно будет считаться заполненным
Ответить с цитированием
  #9 (permalink)  
Старый 05.02.2015, 12:10
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 182

Сообщение от Зосимов Посмотреть сообщение
demoniqus,
с вашим примером не получается сделать проверку. ошибку выдает на строке case 'userName':
09
fields[this.id] = this.value.match(...) ? true : false;
Ну так надо же сделать правильную проверку. которую ты хочешь провести с этим полем вместо многоточия. У меня прекрасно работает и выдает alert
Ответить с цитированием
  #10 (permalink)  
Старый 05.02.2015, 12:10
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 182

<html>
<head>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" >
var fields = {
  userName: false,
  phoneNumber: false,
  userEmail: false
};
var f = function(){
  switch (this.id) {
    case 'userName':
      fields[this.id] = this.value.match(/[\s\w]+/) ? true : false;
      break;
    case 'phoneNumber':
      fields[this.id] = this.value.match(/[\d]+/) ? true : false;
      break;
    case 'userEmail':
      fields[this.id] = this.value.match(/[\d\w._]+@[\d\w._]+/) ? true : false;
      break;
  }
  var sum = 0;
  for (var key in fields) {
    sum += fields[key] ? 1 : 0;
  }
  sum === 3 && alert('message')
};
$(function(){
	$('#userName').change(f);
	$('#phoneNumber').change(f);
	$('#userEmail').change(f);
})

</script>


</head>
<body>
<input type="text" id="userName" /><br />
<input type="text" id="phoneNumber" /><br />
<input type="text" id="userEmail" /><br />
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка полей serrrgggeee Javascript под браузер 0 08.10.2014 15:16
Проверка полей js. MorroWIndss Элементы интерфейса 1 16.05.2014 08:38
Проверка полей при потере фокуса Paltusssss Общие вопросы Javascript 2 13.08.2013 19:32
Проверка полей отправляемой формы. denisOgr jQuery 6 18.10.2010 19:40
проверка полей формы!!!! DENAT Общие вопросы Javascript 0 05.06.2008 22:14