Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Событие OnChange тэга SELECT
 
 автор: [ANTI]CheateR   (20.08.2008 в 17:18)   письмо автору
 
 

Всем привет.
Столкнулся с такой вот проблемкой.
Надо сделать, чтоб при выборе определенного значения()например "2") в тэге SELECT(выпадающий список) выводилось на экран два поля инпут.

Если выбираешь 3, то соответственно 3 поля.
Думаю для людей, разбирающихся в javascript не составит проблемы написать код.
Заранее спасибо.

  Ответить  
 
 автор: ONYX   (21.08.2008 в 03:02)   письмо автору
 
   для: [ANTI]CheateR   (20.08.2008 в 17:18)
 

<html>
<head>
</head>
<body>
<select id="sel" onchange="Add()" name='choice'> 
  <option value='0'>0</option> 
  <option value='1'>1</option> 
  <option value='2'>2</option> 
  <option value='3'>3</option>   
</select>  
<div id="list"></div> 
</body>
<script> 
function Add(){ 
var val = document.getElementById('sel').value 
var parent = document.getElementById('list');  
parent.innerHTML = '';
for(i=0; i<val; i++){
        var child =  document.createElement('INPUT');  
        input = parent.appendChild(child); 
        input.type = 'text';  
        input.name = 'name'+(parent.childNodes.length-1);  
    }


</script> 
</html>

  Ответить  
 
 автор: [ANTI]CheateR   (21.08.2008 в 09:21)   письмо автору
 
   для: ONYX   (21.08.2008 в 03:02)
 

Эх, думал сам смогу по аналогии подправить твой скрипт. Но че то никак не получается.

ONYX, помоги, пожалуйста.

Вот конкретная задача:

Надо только три варианта для селект 2, 3 и 6. ну и соответстенно, столько же инпутов для каждого из вариантов.
Причем при загрузке страницы должны появляться два поля инпут, а значение селект равно 2 должно быть.


ЗАРАНЕЕ СПАСИБО.

  Ответить  
 
 автор: [ANTI]CheateR   (22.08.2008 в 14:15)   письмо автору
 
   для: [ANTI]CheateR   (21.08.2008 в 09:21)
 

NEED HELP ! Вопрос выше !

  Ответить  
 
 автор: Николай2357   (22.08.2008 в 23:10)   письмо автору
 
   для: [ANTI]CheateR   (22.08.2008 в 14:15)
 

Не совсем понятна задача, но может так?
<html> 
<head> 
</head> 
<body onload="Add(2)"> 
<select id="sel" onchange="Add()" name='choice'>  
  <option value='0'>0</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>  
  <option value='6'>6</option>    
</select>   
<div id="list"></div>  
</body> 
<script> 
 
function Add(pusk){
var val = document.getElementById('sel').value;
if(pusk) val = pusk;
var parent = document.getElementById('list'); 
if(val==2 || val==3 || val==6)
 { 
parent.innerHTML = ''; 
for(i=0; i<val; i++){ 
        var child =  document.createElement('INPUT');   
        input = parent.appendChild(child);  
        input.type = 'text';   
        input.name = 'name'+(parent.childNodes.length-1);   
    } 
  }
}  
</script>  
</html>

  Ответить  
 
 автор: PAT   (22.08.2008 в 23:43)   письмо автору
 
   для: Николай2357   (22.08.2008 в 23:10)
 

Учтите только, что в MSIE строка
input.name = 'name'+(parent.childNodes.length-1);
будет проигнорирована, т.е. инпуты имена (NAME) не получат и, соответственно, при сабмите формы никакие данные из этих полей отправлены не будут.
Но если инпуты нужны вам исключительно "для красоты", то сойдёт и так :-)

  Ответить  
 
 автор: ONYX   (25.08.2008 в 03:19)   письмо автору
 
   для: [ANTI]CheateR   (21.08.2008 в 09:21)
 

Полагаю вот так:
<html> 
<head> 
</head> 
<body> 
<select id="sel" onchange="Add()" name='choice'>  
  <option value='2'>2</option>
  <option value='3'>3</option>
  <option value='6'>6</option>
</select>   
<div id="list"></div>
</body> 
<script>  
function Add(){  
var val = document.getElementById('sel').value  
var parent = document.getElementById('list');   
parent.innerHTML = ''; 
for(i=0; i<val; i++){ 
        var child =  document.createElement('INPUT');   
        input = parent.appendChild(child);  
        input.setAttribute('type','text');
        input.setAttribute('name','name'+(parent.childNodes.length-1));
    } 

}
Add();
</script>  
</html> 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования