好吧所以我有一个脚本,当你点击一个链接时,它动态地添加一个表单字段是否有可能使它在提交时它转到“example.com?7”(7因为7个文件) 我的意思是,如果我点击它5次,有5个文件字段,我选择5个文件,我可以制作动作链接mysite.php吗?5
这是脚本:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="application/javascript">
function add(){
var field = document.createElement('input');
field.setAttribute("type", "file");
field.setAttribute("name", "yo");
document.getElementById('myform').appendChild(field);
}
</script>
</head>
<body>
<form id="myform" name="form1" enctype="multipart/form-data" method="post" action="">
<p>File:
<input type="file" name="hello" id="hello" />
</p>
<p>
<input name="submit" type="submit" value="Submit" />
</p>
</form>
<a href="#" onclick="add()">Click Here</a>
</body>
</html>
非常感谢!
答案 0 :(得分:1)
我建议给新添加的字段class =“classX”,当你提交表单计数时,带有指定类的元素的数量为getElementsByClassName
我发现每次添加字段时增加值比简单更简单
答案 1 :(得分:0)
只需在表单中保留一个额外的隐藏字段(称之为“count”),并在脚本添加其他文件输入时让脚本增加其值。
答案 2 :(得分:0)
喜欢什么?
function doSubmit() {
var myForm = document.getElementById('myForm'); //Get myForm
var childNodes = myForm.childNodes; //Count child nodes
var fields = 0;
for ( var node in childNodes ) {
if ( childNodes[node].tagName == 'P' ) fields++;
}
myForm.setAttribute('action', 'mysite.php?'+fields);
}
它直接在myForm下面计算所有P元素。不完美,但它应该工作!只需添加onsubmit='doSubmit();
答案 3 :(得分:0)
我会保持简单并跟踪您添加的文件字段数。只需在每次添加新文件字段时更新URL。
var numFileElements = 1;
function add(){
var field = document.createElement('input');
field.setAttribute("type", "file");
field.setAttribute("name", "yo");
var myForm = document.getElementById('myform');
myForm.appendChild(field);
++numFileElements;
myForm.setAttribute('action', '?'+ numFileElements);
}