Добавление новых полей к форме.
Вопрос состоит в следующем. Необходима форма где в одном из полей вводиться цифра и затем появляются еще дополнительные поля для заполнения, их число равно водимой цифре. Кое как я это дело написал, но проблема в том что новые поля выводятся не в форме а в новом окне. Помогите решить эту проблему.
Вот кусочек формы со скриптом.
<H3><B><I>Авторы публикации</I></B></H3>
<TABLE WIDTH="100%">
<TR><TD WIDTH="250">Количество авторов:</TD>
<TD><input name="n" type="text" tabindex="18" size="5" onChange="selChange(this.value)"></TD></TR>
</TABLE>
<script language ="JavaScript">
var i;
function selChange(n) {
for(i = 1; i <=n; i++){
document.write ("ФИО автора <input name=\"Name",i," type=\"text\" tabindex=\"1\" size=\"50\"><br>");
}
}
</script>
|
<H3><B><I>Авторы публикации</I></B></H3>
<TABLE WIDTH="100%">
<TR><TD WIDTH="250">Количество авторов:</TD>
<TD><input name="n" type="text" tabindex="18" size="5" onChange="selChange(this.value)"></TD></TR>
</TABLE>
<span id="container"></span>
<script language ="JavaScript">
var i;
function selChange(n) {
var str = "";
for(i = 1; i <=n; i++){
str += "ФИО автора <input name=\"Name"+ i +" type=\"text\" tabindex=\"1\" size=\"50\"><br>";
}
document.getElementById("container").innerHTML = str;
}
</script>
|
To Андрей Параничев. Спасибо огромное. Я просто не когда до этого с JS не сталкивался. А тут возникла жизненая необходимость. Еще раз спасибо.
|
У меня появилась еще одна проблема. Все хорошо в форме появляются новые поля, но данные в них не передаются сценарию. Что делать?
|
EZh,
Серверному сценарию, имеете в виду? Тут вот еще ошибку с кавычками заметил: str += "ФИО автора <input name=\"Name"+ i +"\" type=\"text\" tabindex=\"1\" size=\"50\"><br>"; |
Да серверному. Все другие данные из формы передаются методом POST. Как быть с теми данными поля для которых создаются при помощи JS?
|
пост и гет - невзаимоисключающи ;-)
|
EZh,
После исправления кавычки всё-равно данные не приходят? Значит вы делаете что-то неправильно, потому что вот этот код:
<body>
<form action="" method="POST">
<span id="some"></span>
<script>
var str = "";
for(var i=0; i<5; i++)
{
str += "<input name='some_"+ i +"' value='1' /><br />";
}
document.getElementById("some").innerHTML += str;
</script>
<input type="submit" />
</form>
</body>
На выдаче print_r($_POST) дал мне:
Array
(
[some_0] => 1
[some_1] => 1
[some_2] => 1
[some_3] => 1
[some_4] => 1
)
|
| Часовой пояс GMT +3, время: 03:17. |