Javascript 文本作为文本框输入的占位符?
我注意到,在一些网站,例如,注册表单在他们的文本输入字段中有一些“位置保持者”。这样,在文本框中,文本框中没有标签,只有一个相当轻微的字体“First name”单词 使用Firebug进行调查时,我看到以下代码:Javascript 文本作为文本框输入的占位符?,javascript,html,css,Javascript,Html,Css,我注意到,在一些网站,例如,注册表单在他们的文本输入字段中有一些“位置保持者”。这样,在文本框中,文本框中没有标签,只有一个相当轻微的字体“First name”单词 使用Firebug进行调查时,我看到以下代码: <input class="standard_text magic-default magic-default-on" id="user_first_name" name="user[first_name]" size="30" type="text" value="First
<input class="standard_text magic-default magic-default-on" id="user_first_name" name="user[first_name]" size="30" type="text" value="First Name">
看起来幕后发生了一些“神奇的”javascript。但由于我还不熟悉javascript调试,所以我还无法了解他们是如何做到这一点的
有人知道如何产生这种效果吗?您必须为输入框创建一个“onFocus”事件处理程序,并清除所述输入框的值。当然,只有当值是默认值时才清除该值(在示例中为“First Name”),这样,如果用户稍后返回到输入,就不会清除用户输入的任何内容
您还可以附加一个“onBlur”事件处理程序,并将输入框的值恢复为默认值(如果用户没有输入任何内容)。对于现代浏览器,您可以使用HTML5
占位符属性
这将在不使用任何Javascript的情况下实现您所追求的结果,并且将在旧浏览器中进行扩展(不会做任何事情)
<input placeholder="First Name">
HTML5占位符就是您要寻找的:
在您的情况下,它将是:
<input name="firstname" placeholder="First name">
但您也可以100%使用javascript:
功能输入焦点(ph、el){
如果(el.value==ph)
el.value=“”;
}
功能输入模糊(ph,el){
如果(el.value==“”)
el值=ph值;
}
说得好。这里是蓝图:我添加了一个if
,这样,如果用户已经输入了一些内容,代码就不会重置值。if放在语句中的什么位置?更新代码会很有帮助,这样将来的用户就可以确切地知道正在讨论的内容。:)@jlg单击编辑日期将突出显示为您更改的代码。希望对你有帮助。哈,是的!我从来不知道。谢谢:)
<input name="firstname" placeholder="First name">
<input id="user_first_name" name="user[first_name]" size="30" type="text" value="First Name" onFocus="inputFocus('First Name', this)" onBlur="inputBlur('First Name', this)">
<script type="text/javascriptt">
function inputFocus(ph, el){
if(el.value == ph)
el.value = "";
}
function inputBlur(ph, el){
if(el.value == "")
el.value = ph;
}
</script>