2010-09-27 121 views
9

我有一个输入框,它具有分配给它的默认值文本。我怎么能当用户的重点领域::如何删除焦点上输入的默认值

代码删除该文本

<input type="text" name="kp1_description" value="Enter Keypress Description"> 
+0

这不是一个答案,但在未来它将是http://dev.w3.org/html5/spec/Overview.html#the-placeholder-attribute – Galen 2010-09-27 18:10:12

+0

可能的重复[删除输入文本的默认值在点击](http://stackoverflow.com/questions/2984311/delete-default-value-of-an-input-text-on-click) – ripper234 2012-01-02 05:25:14

回答

15
$(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); 
    }); 
})​ 

应该这样做。

更新,忘了焦点不具有焦点拔出事件第2个参数,因为是没有的,它必须与模糊被链接:

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(); 
})​ 
+0

如果没有输入任何内容,值不会重新显示。 – user342391 2010-09-27 17:40:40

+0

更新,让我知道,如果这样的作品。 – RobertPitt 2010-09-27 17:43:06

+0

怪怪的仍然没有 – user342391 2010-09-27 17:46:23

7

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

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

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

只是更容易让别人做繁重的:)

+0

,但使用一个简单的任务整个库不是最好的主意。 – RobertPitt 2010-09-27 17:29:58

+2

的确,我只是认为这个轮子不需要重新设计。有许多场景需要考虑,使用库可以简化很多。他用jQuery标记了他的问题,所以使用jQuery插件可能是完成此任务最实用的方法。 – clifgriffin 2010-09-27 17:33:45

+0

+1代码重用。有些问题很难,应该由图书馆来解决,而不是由地球上的每个编码猴重新实施。谈到JavaScript时,人们对此特别不满。 – Sorpigal 2010-09-27 18:00:38

6

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

0

HTML:

<form method="post"> 
    <input type="text" id="customer" value="Username"/>  
    <input type="Submit" value="Login" class="rc" /> 
</form> 

Javascript代码:

<script> 
$('#customer').on({ 
    focus:function(){     
     if(this.value == 'Username') this.value = ''; 
    }, 
    blur:function(){ 
     if(this.value == '') this.value = 'Username'; 
    } 
}) 
</script> 

这一切,我希望对大家有所帮助。

1

var defaultForInput = "abc";

<input id="myTextInput" type="text" placeholder=defaultForInput />


当提交表单,检查输入(ID = “myTextInput”)值是 '空字符串',如果是用替代它(defaultForInput) 。

3
$('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); 
    }); 
}); 
1

将超酷短版

$('#input_id').focus(function() { 
    $(this).val(""); 
}); 
3
<input type="text" id="anything" placeholder="enter keypress description"> 

我认为这将有助于

0

普通的JavaScript:

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

这使得在价值占位符而不是完全删除它。如果您不喜欢这样,请删除占位符行。