使用javascript更改提交链接

时间:2010-10-20 14:01:07

标签: javascript html

好吧所以我有一个脚本,当你点击一个链接时,它动态地添加一个表单字段是否有可能使它在提交时它转到“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>

非常感谢!

4 个答案:

答案 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);
}