|
|
|
новичок
      
участник
Last Login: 19.08.2007 12:26
Сообщ.: 3,
Visits: 17
|
|
Здраствуйте, подскажите, как моно осуществить следующее: Есть селект со значениями от 1 до 10, в зависимости от того, какое выбрано у него значение, такое кол-во элементов появляется в коде (например <P>). Искал решение, но что-то так и не нашел.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 04.05.2008 11:54
Сообщ.: 269,
Visits: 2 380
|
|
slyend (16.08.2007) Здраствуйте, подскажите, как моно осуществить следующее:
Есть селект со значениями от 1 до 10, в зависимости от того, какое выбрано у него значение, такое кол-во элементов появляется в коде (например <P>). Искал решение, но что-то так и не нашел.
<html>
<head>
<title>
<script>
var tegiz="<p>",a,b;
function C() {
for (var i=0; i<6; i++) { // 6 - кол-во option
if (((document.form1.elements[0])[i]).selected) b=B(i)+((document.form1.elements[0])[i]).value;
}
alert(b); //Отображает теги... + значение option'a
}
function B(num) {
a="";
for (var j=0;j<num;j++) a+=tegiz;
return a;
}
</script>
</head>
<body>
<form name="form1">
<select name="forma" size=1 onChange="C()">
<option value=1>тест 1
<option value=2>тест 2
<option value=3>тест 3
<option value=4>тест 4
<option value=5>тест 5
<option value=6>тест 6
</select>
</form>
</body>
</html>
----------------------------------
Я безработный...
Возьмите меня на работу. =)
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| 2 slyend Если я правильно понял твой вопрос тебе нужно создавать теги <P> на лету. Вот пример как это сделать: <html><head> <title>Тест</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <script language="javascript" type="text/javascript"> function createElements(objSelect) { var n = parseInt(objSelect.value); var addHere = document.getElementById("addHere"); for (var i=0; i<n; i++) { var objP = document.createElement("P"); var txt = document.createTextNode("параграф #"+(i+1)); objP.appendChild(txt); addHere.appendChild(objP); } } </script> </head><body> <form> <select name="n" onchange="createElements(this)"> <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> <option value="7">добавить 7</option> <option value="8">добавить 8</option> <option value="9">добавить 9</option> <option value="10">добавить 10</option> </select> </form> <div id="addHere"></div> </body></html> 2 Vizlim На твоем месте я бы постеснялся выкладывать такой код. 1) Кол-во элементов в select можно определить на лету с помощью свойства options.length. Задавать их кол-во константой выигрыша не дает и только усложняет поддержку. 2) В JavaScript не рекомендуется в цикле писать обращения к вложенным объектам (document.form1.elements в твоем примере). Их лучше кешировать во временной переменной. Это упрощает скрипт и ускоряет его работу в длинных циклах. 3) Глобальных переменных лучше избегать, они тоже замедляют выполнение.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 04.05.2008 11:54
Сообщ.: 269,
Visits: 2 380
|
|
bazile (17.08.2007)
На твоем месте я бы постеснялся выкладывать такой код. 1) Кол-во элементов в select можно определить на лету с помощью свойства options.length. Задавать их кол-во константой выигрыша не дает и только усложняет поддержку. 2) В JavaScript не рекомендуется в цикле писать обращения к вложенным объектам (document.form1.elements в твоем примере).Их лучше кешировать во временной переменной. Это упрощает скрипти ускоряет его работу в длинных циклах. 3) Глобальных переменных лучше избегать, они тоже замедляют выполнение.
Признаю, что был неправ... "поспешишь людей насмешишь", вот теперь стыдно поторопился с ответом... Учту все замечания на будущее =))
----------------------------------
Я безработный...
Возьмите меня на работу. =)
|
|
|
|
|
новичок
      
участник
Last Login: 19.08.2007 12:26
Сообщ.: 3,
Visits: 17
|
|
Спасибо! буду пробовать, сообщу о своих успехах.
Да, генерить надо на лету. Причем у меня там будут не параграфы, а селекты. Соответственно назрел вопрос (может дурацкий), будут ли они (сгенеренные) учитываться при отправке всей формы (у меня заро-о-овая такая форма)?
|
|
|
|
|
новичок
      
участник
Last Login: 19.08.2007 12:26
Сообщ.: 3,
Visits: 17
|
|
2 bazile
Не могли бы вы подсказать, как заставить приведенный вами прмер работать отлько один раз, те при повторном выборе селекта с name="n" параграфы не добавлялись к предыдущим, а генерились заново?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 04.05.2008 11:54
Сообщ.: 269,
Visits: 2 380
|
|
Как вариант, хотя и не самый лучший, но рабочий...
var n = parseInt(objSelect.value);
var addHere = document.getElementById("addHere");
document.getElementById("addHere").innerHTML="";
for (var i=0; i<n; i++)
{
----------------------------------
Я безработный...
Возьмите меня на работу. =)
|
|
|
|