проверка на заполненость 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:29. |