Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.11.2012, 17:00
Новичок на форуме
Отправить личное сообщение для CheBurashka Посмотреть профиль Найти все сообщения от CheBurashka
 
Регистрация: 09.11.2012
Сообщений: 3

Как динамически поменять имя Элемента
При удалении динамически с формы Элемента необходимо повторно присвоить Элементам имена
Элемеенты добавляются DOM
<input type="text" name="val1(1)"> 
<input type="text" name="val1(2)">
<input type="text" name="val1(3)">

после нажатия на кнопку удалить элемент необходимо (допустим val1(2)) необходимо переименовать элементы т.е. что бы получилось следущее
<input type="text" name="val1(1)"> 
<input type="text" name="val1(2)">

Как это реализовать.
Ответить с цитированием
  #2 (permalink)  
Старый 09.11.2012, 18:12
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Тогда с какой целью даются уникальные имена? Не проще ли дать имя val1[] (тоесть <input type="text" name="val1[]" /> и на сервере работать с переданным параметром как с массивом значений ?

Для php:

$val1 = $_POST['val1[]'];
//$val1 = $_POST['val1']; // или так, не помню точно

print_r($val1);
Ответить с цитированием
  #3 (permalink)  
Старый 09.11.2012, 18:19
Аватар для a_l
a_l a_l вне форума
Кандидат Javascript-наук
Отправить личное сообщение для a_l Посмотреть профиль Найти все сообщения от a_l
 
Регистрация: 15.09.2011
Сообщений: 143

После удаления элемента вызывать следующую функцию:
function inputRename() { 
  for(var i=0, l=document.querySelectorAll('input[type=text]').length; i<l; i++) {
    document.querySelectorAll('input[type=text]')[i].name = 'val1('+(i+1)+')';
  }
};
Ответить с цитированием
  #4 (permalink)  
Старый 09.11.2012, 18:54
Новичок на форуме
Отправить личное сообщение для CheBurashka Посмотреть профиль Найти все сообщения от CheBurashka
 
Регистрация: 09.11.2012
Сообщений: 3

Тогда с какой целью даются уникальные имена? Не проще ли дать имя val1[] (тоесть <input type="text" name="val1[]" /> и на сервере работать с переданным параметром как с массивом значений ?

Для php:

$val1 = $_POST['val1[]'];
//$val1 = $_POST['val1']; // или так, не помню точно

print_r($val1);
Где можно поподробнее почитать про этот метод ну и про сам DOM
Ответить с цитированием
  #5 (permalink)  
Старый 09.11.2012, 21:57
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Я так понял формат записи parameter[] не документирован, и поддерживается только некоторыми вариантами server-side'а.
PHP это однозначно. Возможно еще чем-то.

В php к параметру нужно обращаться без скобок: $_POST['val1'], в html же все так, как я указал.

Тут кое что об этом всем.
Ответить с цитированием
  #6 (permalink)  
Старый 10.11.2012, 00:36
Новичок на форуме
Отправить личное сообщение для CheBurashka Посмотреть профиль Найти все сообщения от CheBurashka
 
Регистрация: 09.11.2012
Сообщений: 3

Спасибо большое за помощь)

Задачу всё же решил по своему
((с) Если у тебя что то не получается - Значит ты где то недочитал , Что то недопонял)
El=this.parentNode.parentNode.parentNode.rowIndex;            
htmlTable.deleteRow(this.parentNode.parentNode.parentNode.rowIndex);
document.getElementById("strok").value=tableRows.length-2;
//нужен для того что при удалении предпоследней строки почему то не обновляет имя
if(El==tableRows.length)
{
	for( j = 0; j < 12; j += 1 ) 
	{ 
document.getElementsByName("val"+(j+1)+"("+(El)+")")[0].name="val"+(j+1)+"("+(El-1)+")";
	}    
}
//И само решение проблемы
for( i = El; i <= tableRows.length; i += 1 ) 
{ 
      for( j = 0; j < 12; j += 1 ) 
	{ 
document.getElementsByName("val"+(j+1)+"("+(i)+")")[0].name="val"+(j+1)+"("+(i-1)+")";
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить реальное расстояние от начала страницы до элемента? cartrege Events/DOM/Window 13 20.12.2018 20:44
Как получить имя текущего файла Andrey_szr Элементы интерфейса 3 08.10.2012 10:18
Как узнать имя элемента syegorius Events/DOM/Window 3 12.10.2011 18:07
Как менять позицию элемента? Заданую через position:absolute; left:100px; top:200px; aRpi Общие вопросы Javascript 3 24.04.2011 08:42
Как поменять SRC у Img в Pocket IE Maxidrom Events/DOM/Window 2 08.10.2008 15:05