|
|
|
|
|
для: Crux
(29.08.2005 в 07:10)
| | Теперь работает.
Никогда бы не додумался.
Ещё раз спасибо. | |
|
|
|
|
|
|
|
для: codexomega
(29.08.2005 в 06:22)
| | помменяйте условия цикла
for(k = n_checkbox.length-1 ; k >0 ; k--)
|
| |
|
|
|
|
|
|
|
для: codexomega
(23.08.2005 в 18:42)
| | Я посчитал уже было тему закрытой, но маленькая проблемка, пока только одна...
Дело в том что данная функция:
function delRow(){
// get checked lines
var n_checkbox = document.getElementById("table1").tBodies[0].childNodes
alert("nb_rows: " + n_checkbox.length);
// initialize k = 1 to prevent removing first row
for(k = 1 ; k < n_checkbox.length; k++){
if(n_checkbox[k].childNodes[0].childNodes[0].checked == true)
document.getElementById("table1").tBodies[0].deleteRow(k);
}
}
|
Не убирает одним махом все выделенные линии, а каждый раз приходится кликать на кнопку чтобы стирать по одной линии.
Вроде процедура находится в цикле, так что теоретически должна работать, но на практике - нет... | |
|
|
|
|
|
|
|
для: Crux
(27.08.2005 в 19:55)
| | Огромное спасибо!
Теперь всё работает как надо.
Выручили. | |
|
|
|
|
|
|
|
для: codexomega
(26.08.2005 в 07:21)
| | 1. с учётом того что ваша функция не работае, то утверждение, что: Короче вы все ошибаетесь - это абсурд.
2. помогаю
function delRow()
{
//get checked lines
var n_checkbox = document.getElementById("table1").tBodies[0].childNodes
for(k = 0 ; k < n_checkbox.length; k++)
if(n_checkbox[k].childNodes[0].childNodes[0].checked == true)
document.getElementById("table1").tBodies[0].deleteRow(k);
}
|
| |
|
|
|
|
|
|
|
для: codexomega
(23.08.2005 в 18:42)
| | Короче вы все ошибаетесь.
Чекбоксы точно также входят в группы как и радиобутоны.
Не знаю что я сделал, но мой скрипт вдруг заработал.
А, да я вместо name поставил id но название оставил для всех одинаковое list.
Итак, скрипт выводит колличество чекбоксов а также выдает сколько отмеченных.
function delRow(){
//get checked lines
var v_checkbox = document.getElementsByName("list");
var nb_checked = 0;
alert("checkboxes: " + v_checkbox.length);
for(k = 0 ; k < v_checkbox.length; k++){
if(v_checkbox[k].checked == true){
nb_checked++;
//document.getElementById("table1").deleteRow(?);
}
}
alert("nb_checked: " + nb_checked);
|
Не знаю теперь как стереть линии именно с отмеченными чекбоксами.
Сижу, смотрю на код и ни фига не понимаю.
Короче до меня не доходит.
Помогите пожалуйста если видите ответ.
Спасибо. | |
|
|
|
|
|
|
|
для: codexomega
(24.08.2005 в 18:42)
| | у чекбоксов одинаковые имена не должны быть, это не радиобутоны. | |
|
|
|
|
|
|
|
для: servannin
(24.08.2005 в 18:19)
| | Одинаковое имя list, потому что это имя группы в которую входят все чекбоксы.
Если я поставлю еще несколько чекбоксов, для теста, рядом с первым, на первой строке при загрузке страницы, по умолчанию, т.е не методом динамической добaвки, при нажатии кнопки Add Row, тогда мой код работает, распознает колличество чекбоксов относящихся к данной группе, под названием list а также распознает количество тех, которые отмеченны. | |
|
|
|
|
|
|
|
для: codexomega
(24.08.2005 в 17:50)
| | вообще, как вы знаете,для того,чтобы различать ,например,элементы формы,им нужно присвоить что-то,по чему их можно различать...в JS это name и id .
я думаю,что лучше присваивать им не name, а id.
скрипт не находит новых чекбоксов,потому что при вызове ф-ции addRow() у вас создаются чекбоксы с одинаковыми именами (в данном случае с именем list).
вам нужно изменить код,чтобы создавались чекбоксы с разными именами...подумайте...это можно реализовать :)
и ,соответственно, в ф-ции delRow() не нужно указывать конкретное имя (list) ;
я бы изменил
var v_checkbox = document.getElementsByName("list");
|
на что-то типа этого:
var v_checkbox = document.getElementsById(id);
|
где id можно получить так:
id = event.srcElement.id;
| при клике (или как угодно) по элементу
удачи | |
|
|
|
|
|
|
|
для: Crux
(24.08.2005 в 13:29)
| | Спасибо.
Но мне нужно еще выяснить какая строка выбранна для удаления.
Для этого я раставил checkbox. Проблема в том что при добавлении новых линий в таблицу, почему то скрипт не находит добавленных чекбоксов.
Вот небольшая функция для проверки количества коробок и тех, которые с галочками.
function delRow(){
var v_checkbox = document.getElementsByName("list");
var nb_checked = 0;
alert("checkboxes: " + v_checkbox.length);
for(i = 0 ; i < v_checkbox.length; i++){
if(v_checkbox(i).checked == true)
nb_checked++;
}
alert("nb_checked: " + nb_checked);
}
|
Код видит только первую строку таблицы, а остальные игнорирует... | |
|
|
|
|