Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   переключатель активности input-ов (https://javascript.ru/forum/css-html/5438-pereklyuchatel-aktivnosti-input-ov.html)

Yury 14.10.2009 16:51

переключатель активности input-ов
 
Добрый день. Скажу сразу, с js знаком пока мало. Стоит задача сделать переключатель активности input-ов.

Проще говоря, нажали на галочку, группа инпутов стала активна(доступна для вводатекста), убрали галочку не активна.

имею несколько так называемых блоков:

<td>
<div class="homepage_lessons">
  <div class="premiums">
    <div class="head"><input class="pr_input" name="Name" type="checkbox" onClick="disableText('a');" id="design">Дизайн</div>
      <form name="" action="" method="post">
      <table width="100%" cellspacing="0" cellpadding="0">
        <tbody>
          <tr>
             <td>Дата и время размещения</td><td><input id="a" name="Name" type="text" value="" disabled><br /><br /></td>
           </tr>
           <tr>
             <td>Заказ принял</td><td><input id="a" name="Name" type="text" value="" disabled><br /><br /></td>
           </tr>
           <tr>
             <td>Заказчик</td><td><input id="a" name="Name" type="text" value="" disabled><br /><br /></td>
           </tr>
           <tr>
             <td>Контактное лицо</td><td><input id="a" name="Name" type="text" value="" disabled><br /><br /></td>
           </tr>
        </tbody>
      </table>
      </form>
    </div>
  </div>
</td>


таких на странице может быть от 3

пытаюсь получить группу инпутов по "маске" передаваемого в параметре функции
function disableText(position) {
      var inputs = document.getElementsByTagName('input');
			if (document.getElementById('design').checked == true) {
				for (var i=0, l=inputs.length; i<l; i++) {
				  if ((inputs[i].id||'').indexOf(position) == 0)
				    inputs[i].disabled = 0;
				}
			}
			if (document.getElementById('design').checked == '') {
				for (var i=0, l=inputs.length; i<l; i++) {
				  if ((inputs[i].id||'').indexOf(position) == 0)
				    inputs[i].disabled = 1;
				}
			}
    }


но переключать получается только один из блоков. Очень нужно решить эту проблему. Заранее Спасибо!

PS: Если я ошибся разделом, пожалуйста, перенесите тему в необходимый раздел.

x-yuri 15.10.2009 03:00

не может быть у нескольких элементов одинаковые id. Делай getElementsByTagName для <div class="head">. И что, у тебя для каждой группы своя функция? Передавай лучше в функцию this, по нему найдешь <div class="head"> (parentNode) и т.д.

Yury 15.10.2009 12:17

функция у меня одна для всех блоков. я передаю в параметре id элементов внутри блока. Возможно подход неверный. Тогда вопрос: как получить все input-ы определенного div-a.

Kolyaj 15.10.2009 12:34

Цитата:

Сообщение от Yury
как получить все input-ы определенного div-a.

div.getElementsByTagName('input');

Yury 15.10.2009 13:10

var inputs = document.getElementById('divID').getElementsByTagName('input');


верно?

Kolyaj 15.10.2009 13:11

А попробовать?

Yury 24.10.2009 18:06

спасибо большое! вопрос решился, прошу прощения за глупые вопросы :-)

PS не мог ранее ответить...


Часовой пояс GMT +3, время: 16:46.