我正在使用它来动态生成文本框:`
<html>
<head>
<title>Dynamic Form</title>
<script type="text/javascript" >
function CreateTextbox()
{
var i = 6;
createTextbox.innerHTML = createTextbox.innerHTML +"<input type=text name='flow'+ i/>"
i++;
}
</script>
</head>
<body>
<form name="form" action="post" method="">
<input type="button" value="clickHere" onClick="CreateTextbox()">
<div id="createTextbox"></div>
</form>
</body>
如何从添加的文本框中获取值?
我正在使用javascript和php。
答案 0 :(得分:1)
将生成的ID添加到文本框并使用此ID检索输入
function CreateTextbox()
{
var i = 6;
createTextbox.innerHTML = createTextbox.innerHTML +"<input type=text name='flow'+ i id='box'+i/>"
i++;
}
function getBox(var id){
return document.getElementById("box"+i);
}
答案 1 :(得分:0)
set name =“flow []”这样你就可以使用$ _POST ['flow']将所有值作为数组获取
答案 2 :(得分:0)
createTextbox.innerHTML = createTextbox.innerHTML +“&lt; input type = text name ='flow'+ i /&gt;”
您的报价位置错误,'+ i'实际上是文字字符串的一部分!你的意思是:
'<input type="text" name="flow'+i+'" />'
(还添加了type属性的引号:如果您打算使用XHTML语法也可以正确执行。)
然后,您将获得发送到脚本的表单控件名称,例如“flow6”。 PHP用户更常用的方法是使用一个数组,你可以通过在名称中加上方括号来说服PHP:
'<input type="text" name="flow['+i+']" />'
你似乎也错过了一个:
var createTextbox= document.getElementById('createTextbox');
不要依赖IE将命名元素转换为全局变量的不当行为;它不适用于其他地方。
无论如何,避免追加innerHTML。每次执行此操作时,createTextbox中的所有内容都将被粗略地序列化为一串HTML,然后您更改字符串并将其写回,将其全部解析回对象。在此过程中,您将丢失任何无法序列化为HTML的内容,例如JavaScript引用和事件绑定。
如果您可以单独写入innerHTML,或使用DOM方法创建元素,那通常会更好。