Для вибору елементів форм використовуються спеціальні селектори:
: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);
});
далі ✏