如何删除焦点上输入的默认值

我有一个输入框,其中分配了默认值文本。 当用户关注字段时,如何删除此文本::

 

 $(document).ready(function(){ var Input = $('input[name=kp1_description]'); var default_value = Input.val(); Input.focus(function() { if(Input.val() == default_value) Input.val(""); }).blur(function(){ if(Input.val().length == 0) Input.val(default_value); }); })​ 

应该这样做。

更新,忘记焦点没有焦点输出事件的第二个参数,因为没有,它必须与模糊链接:

http://jsfiddle.net/hDCsZ/

你还应该考虑为此创建自己的函数,例如:

 $.fn.ToggleInputValue = function(){ return $(this).each(function(){ var Input = $(this); var default_value = Input.val(); Input.focus(function() { if(Input.val() == default_value) Input.val(""); }).blur(function(){ if(Input.val().length == 0) Input.val(default_value); }); }); } 

然后像这样使用

 $(document).ready(function(){ $('input').ToggleInputValue(); })​ 

不要这样做。 使用jQuery水印脚本: http : //code.google.com/p/jquery-watermark/

$("input[name='kp1_description']").watermark("Enter Keypress Description") ;

如果您手动执行此操作,则需要考虑很多事项。 例如,当文本框失去焦点时会发生什么? 如果没有价值,您需要阅读帮助文本。 如果有,你想要兑现这些变化。

只是更容易让其他人做繁重的工作:)

使用HTML5,您可以在没有Javascript的情况下执行此操作:只使用placeholder而不是value 。 我认为这是一个很好的补充,但当然你需要先检查浏览器的兼容性。

  

我认为这会有所帮助

 $('input, textarea').each(function () { var Input = $(this); var default_value = Input.val(); Input.focus(function() { if(Input.val() == default_value) Input.val(""); }).blur(function(){ if(Input.val().length == 0) Input.val(default_value); }); }); 

var defaultForInput = "abc";


提交表单时,检查输入(id =“myTextInput”)值是否为’empty-string’,如果是,则将其替换为(defaultForInput)。

超级Duper短版

 $('#input_id').focus(function() { $(this).val(""); }); 

HTML:

 

Javascript代码:

  

这就是全部,我希望它会有所帮助。

普通的JavaScript:

 (function () { let input = document.querySelector ("input[name='kp1_description']"); input.onfocus = function () { this.placeholder = this.value; this.value = ''; }; })(); 

这会将值保留在占位符中,而不是完全删除它。 如果您不喜欢这样,请删除占位符行。