Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.01.2017, 07:41
Аватар для skwz
Новичок на форуме
Отправить личное сообщение для skwz Посмотреть профиль Найти все сообщения от skwz
 
Регистрация: 03.01.2017
Сообщений: 8

проверка на заполненость input
Привет!
Помогите написать пару строк кода, пожалуйста.

Есть input имеющий class="test", если поле заполнено, то добавляем class="test green". Если опять пустое, то удаляем класс "green".
Вот в принципе такую простую вещь мне надо, заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 10.01.2017, 08:18
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от skwz
если поле заполнено, то добавляем class="test green". Если опять пустое, то удаляем класс "green"
Вот тебе статейка...
http://www.khtulhu.org.ua/veb-progra...a-v-input.html
Ответить с цитированием
  #3 (permalink)  
Старый 10.01.2017, 09:41
Аспирант
Отправить личное сообщение для innowed Посмотреть профиль Найти все сообщения от innowed
 
Регистрация: 27.03.2015
Сообщений: 78

как например такой вариант?
<input id="my_input" class="test">
<script>
    var input = document.getElementById("my_input");
    
    input.addEventListener('input', function(e){
        if(!e.target.classList.contains('green')) {
            e.target.classList.add('green');
        }
        if(!e.target.value) {
            e.target.classList.toggle('green');
        }
    
    });
    input.addEventListener('blur', function(e){
        if(!e.target.value && e.target.classList.contains('green')) {
            e.target.classList.toggle('green');
        }
    });
</script>

Последний раз редактировалось innowed, 10.01.2017 в 09:49.
Ответить с цитированием
  #4 (permalink)  
Старый 10.01.2017, 10:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

innowed,
многовато будет
Ответить с цитированием
  #5 (permalink)  
Старый 10.01.2017, 23:16
Аватар для skwz
Новичок на форуме
Отправить личное сообщение для skwz Посмотреть профиль Найти все сообщения от skwz
 
Регистрация: 03.01.2017
Сообщений: 8

Работает, но и без
<input id="my_input" class="test">
<script>
...
...
input.addEventListener('blur', function(e){
    if(!e.target.value && e.target.classList.contains('green')) {
        e.target.classList.toggle('green');
    }
});
</script>

Для чего он?
Ответить с цитированием
  #6 (permalink)  
Старый 11.01.2017, 00:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105



<script>
window.addEventListener('DOMContentLoaded', function() {
   var input = document.querySelector('.test');
    input.addEventListener('input', function(e){
        this.classList[ this.value?'add':'remove']('green');
    });
   });
</script>
  <style type="text/css">
     .green{
        border: 5px solid #008000;
     }

  </style>
<input id="my_input" class="test">
Ответить с цитированием
  #7 (permalink)  
Старый 11.01.2017, 20:44
Аватар для skwz
Новичок на форуме
Отправить личное сообщение для skwz Посмотреть профиль Найти все сообщения от skwz
 
Регистрация: 03.01.2017
Сообщений: 8

Спасибо, идеально
Ответить с цитированием
  #8 (permalink)  
Старый 12.01.2017, 03:06
Аватар для skwz
Новичок на форуме
Отправить личное сообщение для skwz Посмотреть профиль Найти все сообщения от skwz
 
Регистрация: 03.01.2017
Сообщений: 8

Изначально не так поставил вопрос потому что не додумался что не будет работать несколько input-ов с таким кодом, или для каждого input'а прописывать свой индивидуальный id и применять этот код? или же есть способ проще?

<script>
window.addEventListener('DOMContentLoaded', function() {
   var input = document.querySelector('.test');
    input.addEventListener('input', function(e){
        this.classList[ this.value?'add':'remove']('green');
    });
   });
</script>

<style type="text/css">
   .green{
      border: 5px solid #008000;
   }
</style>

Input1:
<input id="my_input" class="test">

Input2:
<input id="my_input" class="test">

Input3:
<input id="my_input" class="test">
Ответить с цитированием
  #9 (permalink)  
Старый 12.01.2017, 05:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

skwz,
id уникально!!! не повторимо в нормальном коде, назначать циклом по всем элементам или делегирование.

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
<script>
  window.addEventListener('DOMContentLoaded', function() {
   var form = document.querySelector('form');
    form.addEventListener('input', function(e){
        var el = e.target;
        el.classList.contains('test') && el.classList[ el.value?'add':'remove']('green');
    });
   });
</script>

<style type="text/css">
   .green{
      border: 5px solid #008000;
   }
</style>
</head>

<body>


<form action="http://" >
Input1:
<input class="test">

Input2:
<input  class="test">

Input3:
<input class="test">
</form>

</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 12.01.2017, 05:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<style>
input:valid {
    background: #E4F6DE;
}

input:invalid {
    background: #FFEBEB;
} 
</style> 
</head>
<body>
<input required="" />
<input required="" /> 
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка на пустоту input Alex_dark74 Общие вопросы Javascript 2 25.03.2016 11:55
проверка input (пожалуйста, помогите) alma95 Общие вопросы Javascript 13 17.02.2015 14:26
Проверка input с одинаковым class igorianru Events/DOM/Window 1 05.11.2013 23:49
Проверка input file dizent jQuery 13 26.09.2013 18:32
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27