如果上传文件,则运行jquery函数

时间:2017-01-20 23:23:29

标签: jquery file input height field

我正在尝试根据当前是否在输入中提交文件来更改div的高度。

我的输入有一个id =“upload”

截至目前,我正在使用.change:

运行此功能
$('#upload').change(function(){
   $('div').css("height", "1000px");
});

当我上传文件时,这非常有效,但是当我删除文件时,输入会再次被更改,因此div的高度保持不变。所以,我需要一个可逆的解决方案并且可以双向工作。我已经尝试了几个其他功能,我检查了值,以及输入的长度,但我似乎无法得到任何有用的东西。

1 个答案:

答案 0 :(得分:1)

根据您所说的内容,我认为这应该适合您。它会在更改后检查#upload元素的值的长度,如果它不大于0(因此为空),它会将div元素缩放回50 px(大胆地假设它是原始大小)。

$('#upload').change(function() {
  if (jQuery(this).val().length > 0) {
    $('div').css("height", "1000px");
  } else {
    $('div').css("height", "50px");
  }
});

我把它放在一个小提琴里:https://jsfiddle.net/7b0hvo3u/

也可以首先检索div元素的原始高度,将其存储在某处,然后使用它而不是硬编码的“50px”。 这会使它看起来像这样:

var originalHeight;
$('document').ready(function() {
  originalHeight = $('div').height();
});
$('#upload').change(function() {
  if (jQuery(this).val().length > 0) {
    $('div').css("height", "1000px");
  } else {
    $('div').css("height", originalHeight);
  }
});

这种变化的小提琴在这里:https://jsfiddle.net/ywsthj2p/1/

希望这有所帮助,如果没有:请详细说明:)

相关问题