Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> удаление строк в динамической таблице, не могу удалить строки в таблице 
V
    Опции темы
Smolet
Дата 4.9.2007, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 20.4.2007

Репутация: нет
Всего: нет



я пытаюсь создать довольно простую таблицу, в которую можно вносить данные и удалять строки...

таблица имеет 4 ячейки, в последней из них ссылка на функцию удаления строки
проблема вот в чем, данная функция прекрасно работает в заголовке таблицы (т.е. в нединамической части), а вот дальше никак...

собственно код

Код


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">

<html>
<head>

<META http-equiv="Content-Script-Type" content="text/javascript">

</head>

<body>

<form action="" id="add_persons" method="post" onsubmit="addRow(); return false;">
<fieldset>
<legend>Insert Nombre</legend>
    <ul>
        <li>
            <label for="name">Nombre</label>
            <input type="text" name="name" id="name" value="" size="12" tabindex="1" />
        </li>
        <li>
            <label for="Apellido">Apellido</label>
            <input type="text" name="Apellido" id="Apellido" value="" size="12" tabindex="2" />
        </li>
        <li>
            <label for="prof">prof</label>
            <input type="text" name="prof" id="prof" value="" size="12" tabindex="3" />
        </li>
        <li>
            <label for="subm">action</label>
            <input type="submit" name="subm" class="submit" value="Insert" tabindex="4" />
        </li>
    </ul>
</fieldset>
</form>


<----! это заголовок таблицы, у меня их два для проверки функций  tableHandler и tableFila - обе работают ---->

<table border="1" id="tab1" class="sortable">
    <thead>
        <tr>
            <th>Nombre</th>
            <th>Apellido</th>
            <th>Prof</th>
            <th id="hideRowContol" onclick="tableHandler(this)" style="cursor:hand;color:#ff0000" title="Eliminar linea">X</th>
        </tr>
        <tr>
            <th>Nombre</th>
            <th>Apellido</th>
            <th>Prof</th>
            <th id="2" onclick="tableFila(this)" style="cursor:hand;color:#ff0000" title="Eliminar">X</th>
        </tr>
    </thead>
    <tbody>
    </tbody>
</table>




</body>

</html>




Код



<script language="JavaScript">

var d = document;

var name;
var Apellido;
var prof;
var button;
id = 0;

function addRow()
{

    // datos dr forma
    name = d.getElementById('name').value;
    Apellido = d.getElementById('Apellido').value;
    prof = d.getElementById('prof').value;

    // tabla
    var tbody = d.getElementById('tab1').getElementsByTagName('TBODY')[0];

    // line en tabel
    var row = d.createElement("TR");
    tbody.appendChild(row);

    // TD
    var td1 = d.createElement("TD");
    var td2 = d.createElement("TD");
    var td3 = d.createElement("TD");
    var td4 = d.createElement("INPUT");

     td4.type = "checkbox";
     td4.value = "1";
     td4.name = "del_me[]";
     td4.title = "Eliminar";
     td4.id = id++;

    row.appendChild(td1);
    row.appendChild(td2);
    row.appendChild(td3);
    row.appendChild(td4);

    // Datos
    td1.innerHTML = name;
    td2.innerHTML = Apellido;
    td3.innerHTML = prof;
    td4.innerHTML = "<a href=# onClick=test(this)>" +  "X" + "</a>";

 }

function hideRow(control)
{
 control.parentElement.style.display=(control.parentElement.style.display==""?"none":"");
}

function deleteRow(control)
{
 control.parentElement.style.display=(control.parentElement.style.display==""?"none":"");
}

function test(table)
{
     var control = event.srcElement;
//     row.parentNode.removeChild(row);
//      deleteRow(control);
       hideRow(control);
//     break;
}


function tableHandler(table)
{
 var control = event.srcElement;
 switch(control.id)
 {
  case "hideRowContol":
   hideRow(control);
  break;
 }
}

function tableFila(table)
{
 var control = event.srcElement;
 switch(control.title)
 {
  case "Eliminar":
   hideRow(control);
  break;
 }
}

</script>



в скрипте 3 функции, т.к. я пытался использоват tableFila и tableHandler и затем решил создать test в котором происходило бы хоть что то...
единственное, чего я добился это то что данная ячейка скрывается, но остальные 3 ячейки остаются...

надеюсь на помощь в данном вопросе

PM MAIL   Вверх
ranger_www
  Дата 4.9.2007, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 24.4.2007

Репутация: нет
Всего: нет



Вопрос:

У тебя при нажатии на checkBox должны происходить события удаления? или на Х в верху таблицы?

PM MAIL ICQ   Вверх
Smolet
Дата 4.9.2007, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 20.4.2007

Репутация: нет
Всего: нет



ой, извините - я эксперементировал и код немножно нет тот положил....

с 30 строки

Код


    var td4 = d.createElement("TD");

//     td4.type = "checkbox";
//     td4.value = "1";
//     td4.name = "del_me[]";




т.е. обычная ячейка с Х, при нажатии на который удаляется строка
еще раз сорри - прошляпил
PM MAIL   Вверх
ranger_www
  Дата 4.9.2007, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 24.4.2007

Репутация: нет
Всего: нет



так должно работать!

control.parentElement.parentElement.style.display=(control.parentElement.style.display==""?"none":"");
PM MAIL ICQ   Вверх
SelenIT
Дата 4.9.2007, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



ranger_www, только в условии тоже еще один .parentElement добавьте ;)


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
ranger_www
  Дата 4.9.2007, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 24.4.2007

Репутация: нет
Всего: нет



Да согласен!!!

Спасибо, не увидел!! smile
PM MAIL ICQ   Вверх
Astraller
Дата 4.9.2007, 14:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 1.8.2007
Где: $Украина[Кры м]->Феодосия

Репутация: 2
Всего: 5



А может все-таки parentNode а не parentElement?


--------------------
A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair
PM MAIL WWW ICQ   Вверх
SelenIT
Дата 4.9.2007, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Astraller, логично, кроссбраузерность рулит;)!


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Smolet
Дата 4.9.2007, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 20.4.2007

Репутация: нет
Всего: нет



спасибо за советы - дома попробую...на работе на дают гады )))
PM MAIL   Вверх
Smolet
Дата 5.9.2007, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 20.4.2007

Репутация: нет
Всего: нет



все супер!!!
работают оба варианта!!

всем спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0994 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.