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

时间:2010-09-27 17:22:59

标签: jquery input default onfocus

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

时,如何删除此文本

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

9 个答案:

答案 0 :(得分:16)

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

答案 1 :(得分:8)

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

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

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

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

答案 2 :(得分:6)

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

答案 3 :(得分:4)

<input type="text" id="anything" placeholder="enter keypress description">

我认为这会有所帮助

答案 4 :(得分: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);
    });
});

答案 5 :(得分:1)

var defaultForInput = "abc";

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


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

答案 6 :(得分:1)

Super Duper Short Version

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

答案 7 :(得分: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>

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

答案 8 :(得分:0)

普通JavaScript:

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

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