textarea为空时如何删除元素?

时间:2017-06-26 02:18:30

标签: javascript jquery html css

我想检查textarea是否为空,然后删除元素prev()。我该怎么办?我的尝试是这样的:

if($(".inputs").val().length == 0){
  $(this).prev().hide();
};

我必须检查“按键”吗?在“按键”事件之后,我试图隐藏的元素是show()。但是如果textarea为空,我想立即隐藏它。

编辑:问题2:我在第一次输入后使用此代码显示元素:

 $(".inputs").one("keypress", function(){
   $(this).prev().show().addClass("animated slideInUp");
 });

但是现在我想隐藏和显示取决于textarea的长度,我应该做这样的事情:

  $(".inputs").on("input", function() {
if ($(".inputs").val().length == 0) {
  $(this).prev().hide();
}
else if ($(".inputs").val().length == 1) {
  $(this).prev().show().addClass("animated slideInUp");
}

1 个答案:

答案 0 :(得分:2)

如果您想要删除<textarea>中的内容时隐藏上一个元素,那么.keyup就可以了:

$(".inputs").on("input", function() {
  if ($(".inputs").val().length == 0) {
    $(this).prev().hide();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="text">Hidden when all content is deleted, doesn't restore</div>
<textarea class="inputs"></textarea>

请注意,当您再次开始输入时,这不会恢复上一个元素。如果你想这样做,你需要将脚本扩展到前一个元素的.show()

$(".inputs").on("input", function() {
  if ($(".inputs").val().length == 0) {
    $(this).prev().hide();
  }
  else {
    $(this).prev().show();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="text">Hidden when all content is deleted, restores</div>
<textarea class="inputs"></textarea>

请注意,input用于keyup,以防用户在不使用键盘的情况下编辑字段。

希望这有帮助! :)