回答
$('#searchform').click(function() {
if ($(this).val() == 'Enter search term') {
$(this).data('original', $(this).val()).val('');
}
});
$('#searchform').blur(function() {
if ($(this).val() == '') {
$(this).val($(this).data('original'));
}
});
编辑截至目前,你应该使用placeholder属性,如果你想使用上述作为缺少填充工具占位符支持。
if (!('placeholder' in document.createElement('input'))){
$('input[placeholder]').each(function() {
$(this).placeholder();
});
}
并将原始代码转换为一个插件,以方便使用(与一些小的mods)。
jQuery.fn.placeholder = function() {
return this.each(function() {
var value = $(this).attr('placeholder');
jQuery(this).val(value).addClass('placeholder');
jQuery(this).focus(function() {
if (jQuery(this).val() == value) {
jQuery(this).val('').removeClass('placeholder');
}
});
jQuery(this).blur(function() {
if (jQuery(this).val() == '') {
jQuery(this).val(value).addClass('placeholder');
}
});
});
};
以这种方式添加验证很困难。想象一下这个领域是必需的。然后所需的字段验证器必须排除初始值。另外想象一下,你想为占位符(或至少不同的颜色)使用不同的字体 - 那么你将不得不切换类。我认为'placeholder'属性是要走的路。 – 2013-04-17 06:39:37
嗯,是的,但这是在2010年,当占位符不是超级知名,并在浏览器中很好地实施。当然,现在是另一次了。但我应该更新我的答案。 – tbleckert 2014-01-09 12:28:43
$('#searchform').click(function() { $(this).val('') })
如果你是想从现场清除默认值,如“输入搜索词”我使用下面的代码:
function clearText(thefield){
if (thefield.defaultValue==thefield.value)
thefield.value = ""
}
,然后在我的输入字段我补充一下:
onfocus="clearText(this)"
因此,这将是:
<input type="text" name="username" value="enter your name here" onfocus="clearText(this)">
我建议你使用HTML5占位符属性。例如:
<input type="text" placeholder="some default string if empty" />
这与大多数最新的浏览器和旧的工作有解决方法的jQuery插件。这里是链接到placeholder plugin。
然后你只需拨打:
$('input[placeholder]').placeholder();
占位符演示http://davidwalsh.name/dw-content/html5-placeholder.php在FF 3.5中不起作用 - 我不想为此使用额外的插件..以及我选择tbleckert的答案.. – Tomkay 2010-11-18 08:59:15
@Tomkay现在占位符是推荐的做事方式。您可以检测浏览器是否支持Modernizr,或者仅使用简单的javascript if。我想现在只有IE <= 8会使用polyfill。 – 2013-04-17 06:36:48
是的,我想现在HTML5已经足够流行以完成这项工作。我也在新项目上使用浏览器验证。 – Tomkay 2013-04-17 07:32:23
- 1. 文本框数据被清除,当我点击复选框
- 2. 清除文本框中的文本框点击它
- 3. 如何使文本框文本消失,当我点击它
- 4. 如何清除点击文本框?
- 5. 当你点击它时有文本清除
- 6. 当我点击它时,如何让文本框中的文本消失?
- 7. JQuery需要在点击日历按钮时清除文本框
- 8. 当点击框(jQuery)时隐藏文本框
- 9. pyautogui每当我点击它时点击
- 10. 单击另一个文本框时清除文本输入(如果为空) - jQuery
- 11. 禁用多个文本框,当我在HTML点击复选框
- 12. 弹出框消失,当我点击文本框
- 13. 如何用jquery点击时清空()
- 14. 隐藏文本框当它被点击输入时
- 15. 当点击按钮时,停止密码文本框为空?
- 16. 当点击提交时,一些文本框变为空白
- 17. 单击文本框并清除文本?
- 18. 用Jquery点击清除输入框
- 19. 点击文本框(输入字符),当提交点击
- 20. 如何清空一个文本框,文本区域jQuery中
- 21. 点击命令,当文本框为空白时不添加文本
- 22. jQuery错误框不会在第一次点击时出现。当我再次点击它第二次它要去
- 23. 点击后清除jquery脚本
- 24. 当我点击按钮时如何打开文本框?
- 25. 如何添加DatePicker当我点击文本框?
- 26. UIAlertview当我点击文本框时不添加UIDatePicker?
- 27. 的UITextView会踏踏实实当我点击文本框
- 28. 当点击它时关闭对话框
- 29. 在点击TD,文本框被点击
- 30. 当我点击这个文本框它变得很大,但是当我点击离开时,我该如何让它恢复正常?
你为什么要这么做?如果您输入了错误的内容而只想编辑会怎么样?看起来你想要的是,如果文本字段包含原始文本(如:输入搜索词),那么点击时应该删除它。对? – tbleckert 2010-11-18 08:38:48
@tbleckert的确。我认为这是一个标准的usabillity的东西..所以我需要一个条件分支,使用户不会生气.. – Tomkay 2010-11-18 08:40:47
为什么你不使用HTML 5的占位符属性?! – 2010-11-18 08:49:05