我想检查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");
}
答案 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
,以防用户在不使用键盘的情况下编辑字段。
希望这有帮助! :)