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

Jquery 如何删除焦点上输入的默认值,jquery,input,default,onfocus,Jquery,Input,Default,Onfocus,我有一个输入框,其中指定了默认值文本。当用户关注字段时,如何删除此文本: 代码 不要这样做。使用jQuery水印脚本: $(“输入[name='kp1_description'])。水印(“输入按键说明”) 如果你手工操作的话,你需要考虑很多事情。例如,当文本框失去焦点时会发生什么情况?如果没有值,则需要读取帮助器文本。如果有,你应该尊重这些改变 只是更容易让其他人做这件事:) 应该这样做 已更新,忘记焦点没有焦点输出事件的第二个参数,因为没有,它必须与模糊链接: 您还应考虑为此创建自己的函

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

代码


不要这样做。使用jQuery水印脚本:

$(“输入[name='kp1_description'])。水印(“输入按键说明”)

如果你手工操作的话,你需要考虑很多事情。例如,当文本框失去焦点时会发生什么情况?如果没有值,则需要读取帮助器文本。如果有,你应该尊重这些改变

只是更容易让其他人做这件事:)

应该这样做

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

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

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

有了HTML5,你就可以不用Javascript了:只需使用而不是
value
。 我认为这是一个很好的添加,但当然您需要首先检查浏览器兼容性。

HTML:

<form method="post">
  <input type="text" id="customer" value="Username"/>      
  <input type="Submit" value="Login" class="rc" />
</form>
<script>
$('#customer').on({
    focus:function(){                   
      if(this.value == 'Username') this.value = '';
    },
    blur:function(){
      if(this.value == '') this.value = 'Username';
    }
})
</script>

Javascript代码:

<form method="post">
  <input type="text" id="customer" value="Username"/>      
  <input type="Submit" value="Login" class="rc" />
</form>
<script>
$('#customer').on({
    focus:function(){                   
      if(this.value == 'Username') this.value = '';
    },
    blur:function(){
      if(this.value == '') this.value = 'Username';
    }
})
</script>

$(“#客户”)。在({
焦点:函数(){
如果(this.value=='Username')this.value='';
},
模糊:函数(){
如果(this.value='')this.value='用户名';
}
})

就这些,我希望它能有所帮助。

var defaultForInput=“abc”



提交表单时,请检查输入(id=“myTextInput”)值是否为“空字符串”,如果是,请将其替换为(defaultForInput)。

超级复制程序短版本

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

我认为这将有助于普通JavaScript:

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

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

但是,将整个库用于一项简单的任务并不是最好的主意。没错,我只是认为这个轮子不需要重新发明。有很多场景你必须考虑,使用库可以简化很多。他用jQuery标记了他的问题,因此使用jQuery插件可能是完成这项任务最实用的方法。+1用于代码重用。有些问题很难解决,应该由一个库来解决,而不是由地球上的每一个代码猴子来重新实现。在JavaScript中,人们对这一点尤其不满意。这很有趣,因为它可能看起来微不足道,但实际上有很多事情要考虑……再次更新,抱歉我半睡着了:这不是一个答案,但在将来,它可能是复制的。
<input type="text" id="anything" placeholder="enter keypress description">
(function () {
  let input = document.querySelector ("input[name='kp1_description']");
  input.onfocus = function () {
    this.placeholder = this.value;
    this.value = '';
  };
})();