Javascript 多文件上传
我可以创建三个文件上载字段,但我只想在选择文件时添加一个新的输入文件。。。。它应该继续增加。。。。类似于Facebook风格的文件上传,您可以在第一个字段中选择一个文件,然后在下一个弹出窗口中Javascript 多文件上传,javascript,ajax-upload,Javascript,Ajax Upload,我可以创建三个文件上载字段,但我只想在选择文件时添加一个新的输入文件。。。。它应该继续增加。。。。类似于Facebook风格的文件上传,您可以在第一个字段中选择一个文件,然后在下一个弹出窗口中 我实际上是在检查浏览的点击事件,但它不起作用 尝试将一些其他事件挂接到文件字段。据我所知,jQuery有一个非常有用的事件,名为.change() 我认为这在您的情况下是可行的。这里是一个非常基本的纯JS实现-希望它能让您朝着正确的方向前进 <?php $uploadNeed=3 ; for($i=
我实际上是在检查浏览的点击事件,但它不起作用 尝试将一些其他事件挂接到文件字段。据我所知,jQuery有一个非常有用的事件,名为.change()
我认为这在您的情况下是可行的。这里是一个非常基本的纯JS实现-希望它能让您朝着正确的方向前进
<?php $uploadNeed=3 ; for($i=0;$i<$uploadNeed;$i++) { ?>
<div class="smWidth">
<input type="file" name="upload_file" value="" id=" " OnClick="alert("
2 ");" />
<br />
<div class="clear">
</div>
</div>
<?php } ?>
//这会记录有多少个输入,因为每个输入都必须有一个唯一的名称!
var输入计数器=1;
函数inputChange(){
//此函数将在div中添加一个新的输入元素,就像在
//原始代码,每次调用时。我们将其附加到onchange
//所有输入的事件
//声明局部变量和增量输入计数器(用于输入名称)
var newContainerDiv、newClearDiv、newInput、newBr;
输入计数器++;
//创建新元素并设置其属性
newContainerDiv=document.createElement('div');
newContainerDiv.className='smWidth';
newInput=document.createElement('input');
newInput.type='file';
newInput.name='upload_file_u'+inputCounter;
newInput.onchange=inputChange;
newBr=document.createElement('br');
newClearDiv=document.createElement('div');
newClearDiv.className='clear';
//将新元素添加到DOM中
newContainerDiv.appendChild(newInput);
newContainerDiv.appendChild(newBr);
NewContainerIV.appendChild(newClearDiv);
document.getElementById('uploads_container').appendChild(newContainerDiv);
}
这是一个javascript问题。。。并将重新标记为suchHave看看有一个很好的多文件上传功能包括在内。
<script type="text/javascript">
// This keeps track of how many inputs there are, because each one MUST have a unique name!
var inputCounter = 1;
function inputChange() {
// This function will add a new input element, in a div, as it is in your
// original code, every time it is called. We attach it to the onchange
// event of all the inputs
// Declare local variables and increment input counter (for input names)
var newContainerDiv, newClearDiv, newInput, newBr;
inputCounter++;
// Create the new elements and set their properties
newContainerDiv = document.createElement('div');
newContainerDiv.className = 'smWidth';
newInput = document.createElement('input');
newInput.type = 'file';
newInput.name = 'upload_file_'+inputCounter;
newInput.onchange = inputChange;
newBr = document.createElement('br');
newClearDiv = document.createElement('div');
newClearDiv.className = 'clear';
// Add the new elements to the DOM
newContainerDiv.appendChild(newInput);
newContainerDiv.appendChild(newBr);
newContainerDiv.appendChild(newClearDiv);
document.getElementById('uploads_container').appendChild(newContainerDiv);
}
</script>
<!-- just create one input at first, so we don't need the PHP loop any more -->
<div id="uploads_container">
<!-- we wrap it all in an outer container div with an id, to ease the task of adding more elements -->
<div class="smWidth">
<input type="file" name="upload_file_1" onchange="inputChange();" />
<br />
<div class="clear">
</div>
</div>
</div>