Javascript.RU

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

Конфликт функции ввода даты и динамических полей
Здравствуйте, уважаемые форумчане! Я новичок в js, и у меня возникла проблема.
Функция ввода даты должна инициализироваться каждый раз, когда вызывается функция добавления динамического поля, иначе с помощью js ввести в новое поле дату будет нельзя. Однако здесь появляется проблема: в "старых" полях после каждого добавления, а значит, и каждой инициализации, требуется кликнуть по дате на один раз больше. Соответственно, на 10 новых, динамически добавленных полей потребуется 11 кликов по первому, изначальному полю. Это же просто жуть. Как разрешить эту дилемму? Может быть, можно как-то "натравить" функцию ввода даты только на вновь добавленные поля?

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">    
    <script type="text/javascript" src="add_input.js"></script>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="jquery.date_input.js"></script>
    <script type="text/javascript">$($.date_input.initialize);</script>
    <link rel="stylesheet" href="date_input.css" type="text/css">
  </head>
  <body>
    <div id="dates">
      <div>
        <input name="date" class="date_input" size="20">
        <input type="button" value="+" onclick="add_input(this.parentNode)">
      </div>
    </div>
  </body>
</html>


содержимое add_input.js:
function add_input(obj)
{
  var new_input=document.createElement('div');
  new_input.innerHTML='<br><input name="new_date" class="date_input">';
  new_input.innerHTML=new_input.innerHTML+'<input type="button" value="+" onclick="add_input(this.parentNode)">';
  new_input.innerHTML=new_input.innerHTML+'<input type="button" value="-" onclick="del_input(this.parentNode)">';
  if (obj.nextSibling)
    document.getElementById('dates').insertBefore(new_input,obj.nextSibling)
  else document.getElementById('dates').appendChild(new_input);
  $($.date_input.initialize);
}
function del_input(obj)
{
  document.getElementById('dates').removeChild(obj)
}


Скрипты ввода даты брал отсюда без изменений (пока что не мой уровень).
Заранее спасибо!

Последний раз редактировалось Pyrex, 15.05.2012 в 02:29.
Ответить с цитированием
  #2 (permalink)  
Старый 15.05.2012, 11:36
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Не совсем понятно, чего вы хотите добиться, я просто вставил ваш код в тот пример и всё нормально заработало (новое поле добавляется, по щелчку открывается таблица, в которой выбираем дату и она устанавливается в это новое поле).
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка даты из поля ввода Rainman71 Элементы интерфейса 6 15.04.2012 10:04
второе поле для ввода даты из календаря maxvilo Элементы интерфейса 4 10.08.2011 21:06
Зависимость полей ввода sakutylev AJAX и COMET 6 07.01.2011 17:10
php не принимает значения динамических полей (кроме браузера IE) Serge xcom Events/DOM/Window 2 23.08.2009 12:15
Динамические создание полей ввода и заполнение их данными vitasya Events/DOM/Window 2 29.03.2009 23:51