Для вибору елементів форм використовуються спеціальні селектори:
:checkbox - вибір checkbox для форм, якщо вказати не ідентифікатор форми, а ідентифікатор div, у якому находиться ця форма, то вибір буде аналогічним
:radio - вибір radio- кнопок для форм
:text - вибір input type="text" для форм
:password - вибір input type="password" для форм
:file - вибір input type="file" для форм
:submit - вибір кнопок type="submit" для форм
:reset - вибір кнопок type="reset" для форм
:button - вибір кнопок type="button" для форм
:image - вибір кнопок type="image" для форм
Фільтри:
:checked - відбір відмічених чекбоксів та радіо-кнопок
:selected - відбір обраного поля в селекторах (випадаючих списках)
:enabled - відбір активних (незаблокованих) елементів форм
:disabled - відбір неактивних (заблокованих) елементів форм
Вибір (true) та відміна вибору (false) в чекбоксах та селекторах
.prop ('checked', true)- відмітити чекбокс
.prop ('checked', false)- зняти відмітку чекбоксу
.prop ('selected', true)- вибрати поле селектору
.prop ('selected', false)- відмінити вибір поля селектору
Блокування та розблокування елементів форм
$('#select').prop('disabled', true) - заблокувати вибране
$('#select').prop('disabled', false) - розблокувати вибране
Перевірка відміченості чекбоксу
if($('#form :checkbox').prop('checked')) - якщо вибраний чекбокс то ... інакше (else) ...
Приклади
:checkbox< form id='frm'> Чекбокс (value="ON"): </form>
🔎 Отримуємо value з чекбоксу
- отримуємо данні з чекбоксу:
🔎 Перемикання чекбоксу
/*Отримуємо данні з value()*/ $('#btncb').click(function(){ var result = $('#frm :checkbox').val(); $('#vcb').text(result); }); /*Перемикаємо чекбокс*/ $('#btncb1').click(function(){ if($('#frm :checkbox').prop('checked')){ $('#frm :checkbox').prop('checked',false); }else{ $('#frm :checkbox').prop('checked',true); } });
🔎 Зміна стану чекбоксу (поставте/зніміть відмітку чекбоксу):
.prop('checked')$('#form :checkbox').on('change', function(){ if($(this).prop('checked')){ $('#vcb').text("Відмічено"); }else{ $('#vcb').text("Не відмічено"); }});
$('#frm2 :checkbox').on('change', function(){ if($(this).is(':checked')){ $('#vcb2').text("Відмічено"); }else{ $('#vcb2').text("Не відмічено"); }});
$('#frm3 :checkbox').on('change', function(){ if($(this)[0].checked) $('#vcb3').text("Відмічено"); else $('#vcb3').text("Не відмічено"); });
🔎 Керування групою чекбоксів
<input type="checkbox" id="mChb"/> - вибрати всі
Група чекбоксів: <div id="gChb"> <input type="checkbox" value="1" /> : 1
<input type="checkbox" value="2" /> : 2
<input type="checkbox" value="3" /> : 3
</div>
Група чекбоксів:
: 2
: 3
Для того щоб відібрати тільки відмічені чекбокси використовуємо фільтр :checked
/* код зміни головної (спільної) кнопки */ $('#mChb').on('change', function(){ if($(this).prop('checked')){ $('#gChb :checkbox').prop('checked',true); }else{ $('#gChb :checkbox').prop('checked',false); } /* вибираємо відмічені і виводимо їх */ var countChb = $('#gChb :checkbox:checked').length; $('#vcb').text(countChb); }); /* при зміні відміченності чекбоксів у групі - підраховуємо та виводимо кількість */ $('#gChb :checkbox').on('change', function(){ var countChb = $('#gChb :checkbox:checked').length; $('#vcb').text(countChb); });
:radio
<form id="form"> </form>
$('#form :radio').on('change', function(){ var vr= $(this).val(); $('#vcb4').text(vr); });
Селектори
🔎 Отримуємо данні з селектору
<form id="frm"> <select> </select> </form>
Різні варіанти отримання даних з селекторів
1. Отримуємо value з обраного поля option $(this).val():2. Отримуємо текст з обраного поля option ($(this).find('option:selected')):
2. Отримуємо атрибут (attr) data з обраного поля option $('#form select option:selected'):
$('#form select').on('change', function(){ /* 1 */ var va=$(this).val(); $('#inf1').text(va); /* 2 */ var os = $(this).find('option:selected').text(); $('#inf2').text(os); /* 3 */ var at = $('#form select option:selected').attr('data-s'); $('#inf3').text(atr); });
🔎 Змінюємо вибір в селекторі скриптом
<form id="frm"> Селектор 1: <select> <option>1</option> <option>2</option> <option>3</option> </select> Селектор 2: <select> <option>1</option> <option>2</option> <option>3</option> </select>
Вибір в одному селекторі змінює інший
$('#frm select').on('change', function(){ /* отримуємо текст з селектору, який змінюємо */ var to = $(this).find('option:selected').text(); /* вибираємо в селекторах options з таким самим змістом і робимо його вибраним selected */ $('#frm select option:contains('+to+')').prop('selected', true); });
:enabled та :disabled
🔎 Вибір незаблокованих та заблокованих елементів форм, блокування розблокування елементів форм
<form id="frm"> <input type="checkbox" checked="checked"/> - підтвердіть згоду
<button>Відправити </form>
$('#frm :checkbox').on('change', function(){ if($(this).prop('checked')) $('#frm button').prop('disabled',false ); else $('#frm button').prop('disabled', true); });
:disabled - відбір неактивних (заблокованих) елементів форм
- перевіряємо стан кнопки "Відправити"
Заблоковано - | |
Розблоковано - |
$('#btn').click(function(){ $('#inf1').text($('#frm button:disabled').length); $('#inf2').text($('#frm button:enabled').length); });
далі ✏