есть вот такой код, он вставляет текстовые поля в форму, тоесть динамически можно добавить поле.
Вот только загвоздка, поле он создает с одинаковым именем FieldName может кто подправит код, чтоб имена полей были уникальные или лучше всего являлись массивом.
Сам я в яваскрипте плаваю, вернее тону.
Вот только загвоздка, поле он создает с одинаковым именем FieldName может кто подправит код, чтоб имена полей были уникальные или лучше всего являлись массивом.
Сам я в яваскрипте плаваю, вернее тону.
Code:
<SCRIPT> function addField (form, fieldType, fieldName, fieldValue)
{
if (document.getElementById)
{
var input = document.createElement('INPUT');
if (document.all)
{
// what follows should work
// with NN6 but doesn't in M14
input.type = fieldType;
input.name = fieldName;
input.value = fieldValue;
}
else if (document.getElementById)
{
// so here is the
// NN6 workaround
input.setAttribute('type', fieldType);
input.setAttribute('name', fieldName);
input.setAttribute('value', fieldValue);
} form.appendChild(input);
}
}
function getField (form, fieldName)
{
if (!document.all)
return form[fieldName];
else // IE has a bug not adding dynamically created field
// as named properties so we loop through the elements array
for (var e = 0; e < form.elements.length; e++)
if (form.elements[e].name == fieldName)
return form.elements[e];
return null;
}
</SCRIPT>
<SCRIPT> var i = 0; </SCRIPT>
</HEAD> <BODY>
<H2 CLASS="javascript">Testing dynamic form field addition</H2>
<FORM NAME="formName" method="post" action="temp.php">
<INPUT TYPE="text" NAME="fieldName" VALUE="field0" SIZE="10">
<INPUT TYPE="button" VALUE="add field"
ONCLICK="var type = 'text';
if (getField(this.form, this.form.fieldName.value))
this.form.fieldName.value = 'field' + ++i;
addField(this.form, 'text', this.form.fieldName.value, i);">
<input type="submit" name="submit" value="отправить">
</FORM> </BODY>