4

我正在使用带有Jasny fork的 Bootstrap 。我正在开发一种用户可以上传图片的表单。我想隐藏表单的提交按钮,直到用户实际选择了图像。理想情况下,当用户从表单中删除文件时,提交按钮也应该消失。这是我第一次真正使用这个叉子。我该怎么做?

<div class="fileupload fileupload-new" data-provides="fileupload">
  <div class="fileupload-new thumbnail" style="width: 114px; height: 64px;"><img src="http://www.placehold.it/114x64/EFEFEF/AAAAAA" /></div>
  <div class="fileupload-preview fileupload-exists thumbnail" style="width: 114px; height: 64px;"></div>
  <span class="btn btn-file"><span class="fileupload-new">Select image</span><span class="fileupload-exists">Change</span><input type="file" /></span>
  <a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Remove</a>
  <button type="submit" class="btn btn-primary">Upload</button>
</div>
4

4 回答 4

5

您必须将事件侦听器添加到输入字段并侦听更改事件。然后您必须检查事件目标是否为用户选择的文件。我修改了您的代码以在输入字段中添加一个 id,并在http://jsfiddle.net/LLfjE/上检查上传按钮

$('#file-input').on('change', function(evt) {
    var file = evt.target.files[0];
    if (file){
        $('#upload-btn').show();
    } else {
        $('#upload-btn').hide();
    }
});​
于 2012-12-06T00:07:22.320 回答
5

所选答案有效,但您也可以为此使用 Jasny 的内置事件:'change.bs.fileinput',如下所示:

$('.fileupload').on('change.bs.fileinput', function() {
   $(this).find('.btn').show();
});
于 2013-12-08T16:25:34.377 回答
2

只需在提交按钮上使用内置类“fileupload-exists”。这应该使按钮隐藏,直到选择了一个文件。

<div class="fileupload fileupload-new" 
    data-provides="fileupload" 
    data-uploadtype="file">

<button type="submit" class="btn fileupload-exists">
<i class="icon-arrow-up"></i> Upload File</button>
于 2013-04-16T15:10:37.380 回答
1

只需将“fileupload-exists”添加到提交按钮类..

于 2013-08-29T12:44:23.400 回答