проверка на заполненость input
Привет!
Помогите написать пару строк кода, пожалуйста. Есть input имеющий class="test", если поле заполнено, то добавляем class="test green". Если опять пустое, то удаляем класс "green". Вот в принципе такую простую вещь мне надо, заранее спасибо! |
Цитата:
http://www.khtulhu.org.ua/veb-progra...a-v-input.html |
как например такой вариант?
<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,
многовато будет :) |
Работает, но и без
<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> Для чего он? |
:-?
<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"> |
Спасибо, идеально :thanks:
|
Изначально не так поставил вопрос потому что не додумался что не будет работать несколько 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"> |
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> |
<!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> |
Часовой пояс GMT +3, время: 22:39. |