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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Форма с выбором 
:(
    Опции темы
Igor_CH
Дата 1.9.2005, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть такой список:
Код
<select multiple size="6" name="vibor_3">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
</select>

Можно ли сделать так что бы от выделенной строки (1-5) загорались для ввода информации поле тект (<input type="text">).

Т.е. выделена 1 можно вводить текст в 2 поля, выделена 2 можно вводить текст в 4 поля,…
PM MAIL   Вверх
MyLogin
Дата 1.9.2005, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Можно. Например используя аттрибут тэгов innerHTML
PM MAIL   Вверх
Igor_CH
Дата 1.9.2005, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я совсем не силен в JavaScripts, можно помочь с кодом?
PM MAIL   Вверх
o.s.a.
Дата 1.9.2005, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

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



Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><title></title>
</head>
<body>
<form id="form1" action="#">
<select name="vibor_3" onChange="createInput(this.options[this.selectedIndex].value);">
<option selected>&nbsp;</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br />
</form>
<script type="text/javascript">
 var check = 0;
 var form1 = document.getElementById('form1');
 function createInput(sel_ind) {
   if (check != 0) { 
     for (var j=1; j<=check*2; j++) {
        form1.removeChild(form1.lastChild);
     }
   }
   var num = sel_ind * 2;
   var inputs = new Array(num);
   for (var i=1; i<=num; i++) {
     inputs[i] = document.createElement("input");
     var attr = document.createAttribute("type");
     attr.nodeValue = "text";
     inputs[i].setAttributeNode(attr);
     form1.appendChild(inputs[i]);
     var br = document.createElement("br");
     form1.appendChild(br);
   }
   check = num;
   
 }
</script>
</body>
</html>




--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Igor_CH
Дата 1.9.2005, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Не совсем так.
мне каждому полю надо будет задать переменную, но этот уже в php
Мне надо что бы поля уже были, но писать в том или в другом поле можно было только при выборе определенной категории, например, при выборе 1 я могу писать в 1 и в 3 поле, при выборе 2 в 1 , в 2 и 3, ...
PM MAIL   Вверх
Aliance
Дата 1.9.2005, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



Igor_CH
Ты напиши HTML код формы тогда, ты же написал только select, а про input ты не сказал, что он уже есть. Если есть - напиши.
И закономерность объясни - тут геометрическая прогрессия?
Выделена 1 селект - 2 инпута
2 селекта - 4 инпута... потом будет 3 - 6...4 - 8 и т.д.?
PM MAIL WWW ICQ Skype   Вверх
o.s.a.
Дата 1.9.2005, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

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



Igor_CH, нужно сразу правильно ставить вопрос, а то лениво писать то, что не нужно smile
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><title></title>
</head>
<style type="text/css">
 input { display: none; }
</style>
<body>
<form id="form1" action="#">
<select name="vibor_3" onChange="function1(this.options[this.selectedIndex].value);">
<option selected>&nbsp;</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br />
<input type="text" id="t1" name="<? /*your name*/ ?>" value="1"><br />
<input type="text" id="t2" name="<? /*your name*/ ?>" value="2"><br />
<input type="text" id="t3" name="<? /*your name*/ ?>" value="3"><br />
<input type="text" id="t4" name="<? /*your name*/ ?>" value="4"><br />
<input type="text" id="t5" name="<? /*your name*/ ?>" value="5"><br />
<input type="text" id="t6" name="<? /*your name*/ ?>" value="6"><br />
<input type="text" id="t7" name="<? /*your name*/ ?>" value="7"><br />
<input type="text" id="t8" name="<? /*your name*/ ?>" value="8"><br />
<input type="text" id="t9" name="<? /*your name*/ ?>" value="9"><br />
<input type="text" id="t10" name="<? /*your name*/ ?>" value="10"><br />
</form>
<script type="text/javascript">
 function function1 (sel_ind) {
   if (sel_ind == 1) { 
     document.getElementById('t1').style.dispay="inline";
     document.getElementById('t3').style.dispay="inline"; // и так можешь задать видимость любому полю
     }
   if (sei_ind == 2) {
      ...
     }
   if (sei_ind == 3) {
      ...
     }
   if (sei_ind == 4) {
      ...
     }
   if (sei_ind == 5) {
      ...
     }
 }
</script>
</body>
</html>



Это сообщение отредактировал(а) o.s.a. - 2.9.2005, 17:51


--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Igor_CH
Дата 2.9.2005, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



o.s.a. да правильно понял меня. При выборе появляется то или иное поле, так при выборе 1 по твоему коду должно появлятся поле t1 и t3. Но почемуто не появляется ошибка: t1 - определение отсутствует.
PM MAIL   Вверх
Aliance
Дата 2.9.2005, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



Опечатка, в 33 и 34 строках «getElementBuId», а нужно getElementById
PM MAIL WWW ICQ Skype   Вверх
Igor_CH
Дата 2.9.2005, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Так тоже пробывал.
Все ровно таже ошибка.
PM MAIL   Вверх
o.s.a.
Дата 2.9.2005, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

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



В той же строчке надо t1 брать в ковычки (опечатка)
Код

document.getElementById('t1').style.dispay="inline";



--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Igor_CH
Дата 3.9.2005, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вот получился такой код:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><title></title>
</head>
<style type="text/css">
 input { display: none; }
</style>
<body>
<form id="form1" action="#">
<select name="vibor_3" onChange="function1(this.options[this.selectedIndex].value);">
<option selected>&nbsp;</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br />
<input type="text" id="t1" name="<? /*your name*/ ?>" value="1"><br />
<input type="text" id="t2" name="<? /*your name*/ ?>" value="2"><br />
<input type="text" id="t3" name="<? /*your name*/ ?>" value="3"><br />
<input type="text" id="t4" name="<? /*your name*/ ?>" value="4"><br />
<input type="text" id="t5" name="<? /*your name*/ ?>" value="5"><br />
<input type="text" id="t6" name="<? /*your name*/ ?>" value="6"><br />
<input type="text" id="t7" name="<? /*your name*/ ?>" value="7"><br />
<input type="text" id="t8" name="<? /*your name*/ ?>" value="8"><br />
<input type="text" id="t9" name="<? /*your name*/ ?>" value="9"><br />
<input type="text" id="t10" name="<? /*your name*/ ?>" value="10"><br />
</form>
<script type="text/javascript">
 function function1 (sel_ind) {
   if (sel_ind == 1) { 
     document.getElementById('t1').style.dispay="inline;
     //document.getElementById('t3').style.dispay="inline"; // и так можешь задать видимость любому полю
     }
   if (sel_ind == 2) {
      document.getElementById('t1').style.dispay="inline";
     document.getElementById('t4').style.dispay="inline"; 
     }
   if (sel_ind == 3) {
      document.getElementById('t1').style.dispay="inline";
     document.getElementById('t5').style.dispay="inline"; 
     document.getElementById('t4').style.dispay="inline"; 
     }
   if (sel_ind == 4) {
      document.getElementById('t2').style.dispay="inline";
     document.getElementById('t3').style.dispay="inline"; 
     document.getElementById('t4').style.dispay="inline"; 
     }
   if (sel_ind == 5) {
      document.getElementById('t2').style.dispay="inline";
     document.getElementById('t10').style.dispay="inline"; 
     document.getElementById('t1').style.dispay="inline";
     document.getElementById('t5').style.dispay="inline"; 
     }
 }
</script>
</body>
</html>


Но нет ни ошибок, ни полей, есть только форма выбора.
PM MAIL   Вверх
Aliance
Дата 3.9.2005, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



А подсветка на что тебе? Только чтобы цветной текст был?
Ну видно же что в 34 строчке комментарии лишние...
PM MAIL WWW ICQ Skype   Вверх
Igor_CH
Дата 3.9.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Комментарии убрал. Пишет: Ошибка в 10 строке предполагается налие объекта
PM MAIL   Вверх
Sardar
Дата 3.9.2005, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



И зачем так париться...?

Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><title></title>
</head>
<style type="text/css">
 input { display: none; }
</style>
<body>
<form id="form1" action="#">
<select name="vibor_3" onChange="showInputs(this.options[this.selectedIndex].value);">
  <option selected="selected">&nbsp;</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
</select>
<br />
<fieldset id='fields'><legend>Inputs:</legend>
<input type="text" id="t1" name="<? /*your name*/ ?>" value="1"><br />
<input type="text" id="t2" name="<? /*your name*/ ?>" value="2"><br />
<input type="text" id="t3" name="<? /*your name*/ ?>" value="3"><br />
<input type="text" id="t4" name="<? /*your name*/ ?>" value="4"><br />
<input type="text" id="t5" name="<? /*your name*/ ?>" value="5"><br />
<input type="text" id="t6" name="<? /*your name*/ ?>" value="6"><br />
<input type="text" id="t7" name="<? /*your name*/ ?>" value="7"><br />
<input type="text" id="t8" name="<? /*your name*/ ?>" value="8"><br />
<input type="text" id="t9" name="<? /*your name*/ ?>" value="9"><br />
<input type="text" id="t10" name="<? /*your name*/ ?>" value="10"><br />
</fieldset>
</form>
<script type="text/javascript">
 //открываемые элементы, где слева значение селекта, а справа список инпутов
 var patterns={
  '~1':['t1'],
  '~2':['t1', 't4'],
  '~3':['t1', 't4', 't5'],
  '~4':['t2', 't3', 't4'],
  '~5':['t1', 't2', 't5', 't10']
 };
 
 function showInputs(sel_ind) {
    if(!patterns['~'+sel_ind]) return alert('Wrong select value!');
    //hidde all
    var inp=document.getElementById('fields').getElementsByTagName('INPUT');
    for(var i=0; i<inp.length; i++) inp[i].style.display='none';
    //show selected
    var pat=patterns['~'+sel_ind], el;
    for(var i=0; i<pat.length; i++) {
      if((el=document.getElementById(pat[i]))==null) return alert("Element '"+pat[i]+"' doesn't exists!");
      el.style.display='inline';
    }
 }
</script>
</body>
</html>



Igor_CH учитесь находить ошибки в программе, синтаксические находит за вас парсер smile


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


 




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


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

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