我有一个带有文件选择器的表单,以及一个用于输入文件链接的备用输入框。上传时,如果网址框有值,则优先于文件选择器并上传。我的问题是如何在选择文件时清除网址框?这就是表格的样子..
<div id="video-attachment-section" class="attachment-section">
<div>
<label>URL: </label><form:input path="url" id="video-url" style="width:95%;margin-left:2%;"/>
</div>
<div>
OR
</div>
<div id="video-attachment-field">
<label>Local File: </label>
<input type="file"
name="attachment"
accept="${lookups.attachmentMimeTypesList}"
onchange="c.handleFileSelected(this.files)"
class="attachment-input"
id="video-file" style="display:none;"/>
<label class="button button-low-priority" id="btn-select-file" for="video-file" style="margin-left:.5%;">Select File</label>
<span id="video-file-error" class="attachment-error"></span>
<span id="video-file-name" class="attachment-name">${videoUploadForm.uploadedFileName}</span>
<span id="video-file-size" class="attachment-size"></span>
<div class="upload-progress"></div>
<form:hidden path="uploadedFileName"/>
</div>
</div>
如您所见,我使用不同的按钮来打开文件对话框而不是输入元素上的内容(出于样式目的,其他按钮是可怕的......)
这是我尝试过的,但没有运气:
init:function(){
$("#video-file").change = function(e){
$("#video-url").val("");
};
}
答案 0 :(得分:2)
change
是一种方法,而不是属性。试试这个:
init:function(){
$("#video-file").change(function(e){
$("#video-url").val("");
});
}
答案 1 :(得分:0)
您必须绑定change
事件而不是为其分配函数,请参阅下面的代码
init:function(){
$("#video-file").bind("change",function(e){
$("#video-url").val("");
});
}
但正如评论中提到的那样,{JAME1.7已弃用bind
,如果您使用的是1.7或更高版本,请使用以下代码:
init:function(){
$("#video-file").change(function(e){
$("#video-url").val("");
});
}