这是我的Fiddle
一切都写在小提琴里。
问题是什么: 当我选择开始在输入中输入内容时,我希望文本消失。
如果我专注于输入,我希望
消失,只有在我没有输入任何内容时才会重新出现,
如果我在文字输入中输入了某些内容,我希望隐藏的内容保持这种状态。
老实说,我不知道如何做到这一点,我试图用它来表明我的意思
非常感谢你的帮助!
答案 0 :(得分:1)
使用.blur()
检测输入何时失去焦点,然后使用.val()
测试其长度是否为0
。如果是,show
再次p
:
$(document).ready(function () {
$(".type").focus(function() {
$("p").hide();
}).blur(function () {
if ($(this).val().length == 0) {
$("p").show();
}
});
});
<强> DEMO 强>
答案 1 :(得分:1)
看起来你试图运行的小提琴中有一些错误..我创造了一个新的小提琴,似乎因某种原因工作正常..
$('.type').on('focus', function(){
$("p").hide();
});
$('.type').on('keyup blur', function(){
if($('.type').val() == ''){
$("p").show();
}
});
选中此FIDDLE
使用keyup和blur事件来获得所需的功能..
答案 2 :(得分:0)
答案就在于这个小提琴:http://jsfiddle.net/yLK5c/3/
$(".type").on('focus keyUp',function(){
if ($(this).val() == "") {
$(this).attr('placeholder',"");
}
});
$(".type").blur(function(){
if ($(this).val() == "") {
$('p').hide();
} else {
$('p').show();
}
$(this).attr('placeholder',"type something");
});
答案 3 :(得分:0)
我更新了你的小提琴,使用'on',并使用模糊。
$(document).ready(function(){
$(".type").on('focus', function(){
$("p.explanatory").hide();
}).on('blur', function() {
if($('.type').val() == '')
{
$("p.explanatory").show();
}
});
});
这是我的工作! http://jsfiddle.net/M2Z88/5/
答案 4 :(得分:0)
正如João指出的那样,你应该使用blur
事件来检测失去焦点的时间。但是,如果文本框中有任何文本,您还希望文本消失。这样做的方法是监听keyup
个事件,然后检查编辑框中的值。 (如果您使用keydown
,则该字母不会添加到文本框中,因此您将成为背后的角色。)
我认为你想要的是:
$(".type").focus(function(){
if( $(this).val() == '' ) $("p").hide();
});
$(".type").blur(function(){
$("p").show();
});
$(".type").keyup(function(){
if( $(this).val() == '' ) $("p").hide();
else $("p").show();
});
JsFiddle:http://jsfiddle.net/Mz95q/
答案 5 :(得分:0)
这是我的食谱
$(document).ready(function(){
$(".type")
.focus(function(){
$("p").hide()
;})
.blur(function () {
if (!$(this).val()) {
$("p").show()
;}
});
});