我有一个输入框,它具有分配给它的默认值文本。我怎么能当用户的重点领域::如何删除焦点上输入的默认值
代码删除该文本
<input type="text" name="kp1_description" value="Enter Keypress Description">
我有一个输入框,它具有分配给它的默认值文本。我怎么能当用户的重点领域::如何删除焦点上输入的默认值
代码删除该文本
<input type="text" name="kp1_description" value="Enter Keypress Description">
$(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个参数,因为是没有的,它必须与模糊被链接:
,你也应该考虑创建此如自己的功能:
$.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();
})
如果没有输入任何内容,值不会重新显示。 – user342391 2010-09-27 17:40:40
更新,让我知道,如果这样的作品。 – RobertPitt 2010-09-27 17:43:06
怪怪的仍然没有 – user342391 2010-09-27 17:46:23
不要做这种方式。使用jQuery水印脚本: http://code.google.com/p/jquery-watermark/
$("input[name='kp1_description']").watermark("Enter Keypress Description")
;
如果您手动执行操作,则需要考虑很多事项。例如,当文本框失去焦点时会发生什么?如果没有价值,你会想读你的帮手文本。如果有的话,你会想要兑现这些变化。
只是更容易让别人做繁重的:)
,但使用一个简单的任务整个库不是最好的主意。 – RobertPitt 2010-09-27 17:29:58
的确,我只是认为这个轮子不需要重新设计。有许多场景需要考虑,使用库可以简化很多。他用jQuery标记了他的问题,所以使用jQuery插件可能是完成此任务最实用的方法。 – clifgriffin 2010-09-27 17:33:45
+1代码重用。有些问题很难,应该由图书馆来解决,而不是由地球上的每个编码猴重新实施。谈到JavaScript时,人们对此特别不满。 – Sorpigal 2010-09-27 18:00:38
使用HTML5,您可以在不使用Javascript的情况下使用它:只需使用placeholder
而不是value
即可。 我认为这是一个很好的补充,但是当然你需要首先检查浏览器的兼容性。
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>
这一切,我希望对大家有所帮助。
var defaultForInput = "abc";
<input id="myTextInput" type="text" placeholder=defaultForInput />
当提交表单,检查输入(ID = “myTextInput”)值是 '空字符串',如果是用替代它(defaultForInput) 。
$('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);
});
});
将超酷短版
$('#input_id').focus(function() {
$(this).val("");
});
<input type="text" id="anything" placeholder="enter keypress description">
我认为这将有助于
普通的JavaScript:
(function() {
let input = document.querySelector ("input[name='kp1_description']");
input.onfocus = function() {
this.placeholder = this.value;
this.value = '';
};
})();
这使得在价值占位符而不是完全删除它。如果您不喜欢这样,请删除占位符行。
这不是一个答案,但在未来它将是http://dev.w3.org/html5/spec/Overview.html#the-placeholder-attribute – Galen 2010-09-27 18:10:12
可能的重复[删除输入文本的默认值在点击](http://stackoverflow.com/questions/2984311/delete-default-value-of-an-input-text-on-click) – ripper234 2012-01-02 05:25:14