动态增加上传域的实现

[size=medium]通过点击“添加文件”,便可动态的添加一新的上传域。是这时我在工作时用到的,感觉还不错.


//将下面的内容复制到指定的位置即可使用.


<script>
var fileFieldCount = 1;
function addFileField(){
if(fileFieldCount>=10) return false
fileFieldCount++;
var f = document.createElement("input")
f.type="file" ;
f.name = "filename["+fileFieldCount+"]" ;
f.size=30 ;
p = document.getElementById("fields") ;
p.appendChild(f) ;
var br = document.createElement("br") ; //追加换行符
p.appendChild(br)

}


</script>


// 上面是页面脚本的实现


<table>
<tr>
<td colspan='4'>
<span id="fields">
<input type='file' name='filename[1]' size="30">
<br>
</span>
<small>
<a οnclick="addFileField() ; return false ;" href="#">添加其他文件</a>
</small>
</td>
</tr>
</table>


// 这是表单域,点击“添加其他文件”即可实现动态的添加上传文本域[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用以下代码实现 jQuery 动态添加 input type=file 文件上并配合 ajax 上文件。 HTML 代码: ```html <div id="file-list"></div> <button id="add-file">添加文件</button> ``` JavaScript 代码: ```javascript $(function() { var fileList = $('#file-list'); var addButton = $('#add-file'); addButton.on('click', function() { var fileInput = $('<input type="file" name="file">'); var removeButton = $('<button>删除</button>'); var listItem = $('<div></div>').append(fileInput).append(removeButton); fileList.append(listItem); removeButton.on('click', function() { listItem.remove(); }); fileInput.on('change', function() { var file = fileInput[0].files[0]; if (file) { var formData = new FormData(); formData.append('file', file); $.ajax({ url: '/upload', type: 'POST', data: formData, processData: false, contentType: false, success: function(data) { console.log('上成功'); } }); } }); }); }); ``` 具体实现步骤如下: 1. 创建一个包含文件列表的容器和添加文件按钮。 2. 给添加文件按钮绑定一个点击事件,动态创建一个 input type=file 文件上和删除按钮,将它们添加到文件列表容器中。 3. 给删除按钮绑定一个点击事件,当点击时将该文件上从文件列表容器中删除。 4. 给文件上绑定一个 change 事件,当选择了文件时,创建一个 FormData 对象,将选中的文件添加到其中,然后通过 ajax 发送到服务器。 5. 在 ajax 的 success 回调函数中处理上成功后的逻辑。 注意,要设置 processData 和 contentType 为 false,这样 jQuery 就会将 FormData 对象中的数据直接发送到服务器,而不是将其转换为字符串发送。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值