jquery – 在keyDown中从输入中删除文本

我有一个输入框,我在网站上有一些文字

 

现在我需要补充一点,当用户开始输入内容(输入第一个字母)时,我的文本将消失,他将能够输入他想要的输入。

我尝试过:

 $('#input').keypress(function () { $(this).val(""); }); 

但是,用户只能输入一个字母,因为它一直在删除文本。

如何才能做到这一点?

谢谢

您可以使用占位符来完成此操作

演示: http : //jsfiddle.net/9VhYZ/

有些浏览器还不支持这一点,添加回退也可能是跨浏览器支持它的好主意: http : //davidwalsh.name/html5-placeholder

更新 :你可以这样做你要求的: http : //jsfiddle.net/9VhYZ/1/

 $('#input').one("keydown", function () { $(this).val(""); }); 

通常这种技术称为重影。 您可以使用占位符属性和渐进增强。 我经常喜欢使用类ghostInput并在页面加载时全局应用它,因此我可以简单地通过附加全局类来向元素添加ghost属性。

  $(function() { $(".ghostInput").focus(function() { if ($(this).val() == $(this).attr("placeholder")) { $(this).val(""); } }).blur(function() { if ($(this).val() == "") { $(this).val($(this).attr("placeholder")); } }); }); 

通常,您需要在输入中添加和删除另一个类,以使文本看起来更轻一点,这相当容易。 只需在焦点()上移除它并将其添加到空模糊()上即可。

我建议使用HTML5的占位符属性而不是JavaScript:

  

请注意 – 它并不是随处可见,但如果你有奢侈的忽略旧浏览器,那么这绝对是一个可以解决的问题。

您正在实现文本框的默认值。

你有两个选择:

  • 一个插件: http : //plugins.jquery.com/project/default-value
  • HTML5的placeholder="Value"属性。

所有浏览器都不支持HTML5,所以我会尝试两者。