选择文件时更改文本框值

时间:2014-05-06 13:17:29

标签: javascript jquery html5 jsp

我有一个带有文件选择器的表单,以及一个用于输入文件链接的备用输入框。上传时,如果网址框有值,则优先于文件选择器并上传。我的问题是如何在选择文件时清除网址框?这就是表格的样子..

<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("");
       };
    }

2 个答案:

答案 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("");
       });
    }