|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Dec 2003
Адрес: Нижний Новгород
Сообщений: 121
|
Checkbox и TextField - активность\не активность...
У меня из БД в html строются определённые строки с информацией и в каждий строке есть один чекбокс(для отбора строк-записей) и одно текстовое поле (для указания количества выбраных записей). Задача сделать так, чтоб можно было выбрать, например, только 3 чекбокса. Вабирает человек максимум 3 позиции и чекбоксы и текстфилды не относящиеся к выбраным строкам становятся не активными (disabled).
Парился я, парился с этим, что-то мало чего выходит. Может быть у кого-то есть идеи как конкретно реализовать задуманное. Заранее благодарен!
__________________
X/2/CoM |
|
|||||
Вешаешь на onclick ко всем чекбоксам обработчик, который проверяет количество зачеканых полей и отключает остальные.
function GetCount() { var retvalue = 0; tempColl = document.getElementsByTagName("input"); for (i=0; i<tempColl.length; i++) { if ((tempColl[i].type == "checkbox")&&(tempColl[i].checked)) retvalue = retvalue + 1; } if (retvalue >= 3) DisableInactive(); } function DisableInactive() { tempColl = document.getElementsByTagName("input"); for (i=0; i<tempColl.length; i++) { if ((tempColl[i].type == "checkbox")&&(!tempColl[i].checked)) tempColl[i].disabled = true; } }
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
|
|||||
Регистрация: Dec 2003
Адрес: Нижний Новгород
Сообщений: 121
|
Спасибо, вроде работает, только немного не так как хотелось. А как сделать, чтобы этой функции подчинялись чекбоксы определённого имени. Например где name='choose[x]' ? У меня просто две разных группы записей с чекбоксами и надо, чтоб эта функция работала отдельно для каждой группы.
__________________
X/2/CoM |
|
|||||
Подумать и использовать в проверке не type, а name.
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
|
|||||
Регистрация: Dec 2003
Адрес: Нижний Новгород
Сообщений: 121
|
Я, конечно, извиняюсь. Я плохо в JS разбираюсь, из предложенного кода получилось:
function GetCount(num) { var retvalue = 0; tempColl = document.getElementsByTagName('input'); for (i=0; i<tempColl.length; i++) { if ((tempColl[i].name == "rdv_choose")&&(tempColl[i].checked)) retvalue = retvalue + 1; } if (retvalue >= num) { DisableInactive(); }else EnableInactive(); } function DisableInactive() { tempColl = document.getElementsByTagName('input'); for (i=0; i<tempColl.length; i++) { if ((tempColl[i].name == "rdv_choose")&&(!tempColl[i].checked)) { tempColl[i].disabled = true; } } } function EnableInactive() { tempColl = document.getElementsByTagName('input'); for (i=0; i<tempColl.length; i++) { if ((tempColl[i].name == "rdv_choose")&&(!tempColl[i].checked)) tempColl[i].disabled = false; } } P.S.- "rdv_choose" - массив с поочерёдными числовыми ключами.
__________________
X/2/CoM Последний раз редактировалось x2com; 26.01.2006 в 18:55. |
Часовой пояс GMT +4, время: 05:29. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|