有没有办法编写一个jQuery方法来删除所选文件以清除它?如何将文件名传递给jQuery以重置文件输入?
我不想一次清除所有文件。
以下是我的文件:
<div class="field fieldTEXT">
<form:label path="file" cssClass="fieldLabel">
Attach Competitor:
</form:label>
<form:input path="file" type="file" cssClass="fileInput" accept="application/pdf"/> <a href="" onclick="RemoveFile();" > Remove</a>
</div>
<div class="field fieldTEXT">
<form:label path="file2" cssClass="fieldLabel">
Attach 2
</form:label>
<form:input path="file2" type="file" cssClass="fileInput"/> <a href="" onclick="RemoveFile();" > Remove</a>
</div>
<div class="field fieldTEXT">
<form:label path="file3" cssClass="fieldLabel">
Attach Additional Information:
</form:label>
<form:input path="file3" type="file" cssClass="fileInput" accept="application/pdf"/> <a href="" onclick="RemoveFile();" > Remove</a>
</div>
<div class="field fieldTEXT">
<form:label path="file4" cssClass="fieldLabel">
Attach Additional Information (If Needed):
</form:label>
<form:input path="file4" type="file" cssClass="fileInput" accept="application/pdf" /> <a href="" onclick="RemoveFile();" > Remove</a>
</div>
在我的JS中: 如何将名称传递给我的JS文件并重置所选链接?
function RemoveFile(name) {
$('input[type=file]').val('');
}
答案 0 :(得分:1)
此代码有效,请忽略我对html所做的更改,即在编辑器中生成HTML。
说明:如果您向表格a
中的所有field fieldTEXT
标记添加事件处理程序,则会调用该函数,该事件将为我们提供{ {1}}基本上是点击的元素。然后使用jquery函数this
,我访问prev()
标记之前的元素,即a
元素,然后我们使用input
清除字段
val('')
&#13;
$('.field.fieldTEXT a').on('click', function(){
$(this).prev().val('');
});
&#13;
答案 1 :(得分:0)
获取所有元素并检查每个对象是否有文件。并清除文件是否存在
$('input[type=file]').each(function(i, obj) {
if(obj.files.length){
obj.val('');
}
});