2012-03-30 107 views
0

我正在尝试使按钮在每次点击时添加另一个输入框,但我也希望它在输入名称的末尾添加越来越多的数字。我有这个代码来添加更多的输入。如何添加具有不同名称的多个输入框

<script type="text/javascript"> 
function addInput() 
{ 
    var x = document.getElementById("inputs"); 
    x.innerHTML += "<input type=\"file\" name=\"photo\" />"; 
} 
</script> 

我能做些什么,使之让每一个新的形式添加,将较高的号码添加到的名称=“照片”结束,这样我可以用我的PHP脚本正确处理图像的时间?

默认的形式是:

<input type="file" name="photo"> 

但我想每一个新的输入时有像这样的输出时间的数量添加到照片的末尾。

<input type="file" name="photo"> 
<input type="file" name="photo2"> 
<input type="file" name="photo3"> 
<input type="file" name="photo4"> 

+0

如果你喜欢,我可以给你一个使用jQuery的答案吗? – 2012-03-30 09:09:53

+0

我现在想通了,谢谢。 – chris 2012-03-30 09:11:30

回答

2

您可以在表单名称中使用[],那么你的PHP脚本会自动这些输入转换为数组,这样,你甚至不必担心再追加数量。

<input type="file" name="photo[]"> 

如果你想这样做使用JavaScript它,最简单的方法是有保留的投入数量的跟踪变量

var inputNumber = 0; 
function addInput() 
{ 
    var x = document.getElementById("inputs"); 
    x.innerHTML += "<input type=\"file\" name=\"photo\"" + inputNumber + " />"; 
    inputNumber++; 
} 

+0

不错,非常感谢。 – chris 2012-03-30 09:09:57

1

andeas的答案很可能是最适合这个特定的情况。但总的来说,如果你想有一个计数器,将每次函数被调用时增加,试试:

(function { 
    var counter = 0; 
    window.myfunction = function() { 
     // do stuff, use counter if needed 
     counter++; 
    } 
})(); 

counter可以就好像它是这方面的一个静态变量来处理。

2

声明一个计数并将其初始化为0,然后在每次调用中增加它。

<script type="text/javascript"> 
var count=0; 
function addInput() 
{ 
    var x = document.getElementById("inputs"); 
    x.innerHTML += '<input type=\"file\" name=\"photo\"'+count+' />; 
    count++; 
} 
</script> 
+0

注意:你不需要逃避“如果你正在缠绕你的绳子' – 2012-03-30 09:16:31

相关问题