我正在制作一个包含大约八个输入字段的简单表单。我希望字段中的初始值表示人们应该输入的内容。例如value =“name”,以便人们知道在那里输入名称。
我的问题是,当你进入那个字段时,你是如何让初始值消失的,这样初始值只是一个提示,而不是他们在输入名字之前必须删除的永久值?
谢谢!
答案 0 :(得分:37)
更简单的方法可能是:
placeholder="Name"
答案 1 :(得分:22)
将“默认”值设置为“名称”。然后,使用javascript和'onfocus'事件清除该字段。
所以你会:
<input type="textbox" value="Name" onfocus="if (this.value=='Name') this.value='';"/>
答案 2 :(得分:6)
这就是你应该怎么做的。
<input type="text" value="name" onfocus="this.value = this.value=='name'?'':this.value;" onblur="this.value = this.value==''?'name':this.value;">
如果他们点击它并单击关闭默认值将返回。如果他们点击它并输入内容,如果他们再次点击它们,它将不会尝试删除它们放置的内容。
答案 3 :(得分:3)
基本的javascript:
<input type="text" value="name" onfocus='if(this.value=="name"){this.value="";}' />
答案 4 :(得分:1)
对于S&amp; G来说,我想我会为这个问题发布一个可重用的jQuery解决方案。
var formDefaulter=function(){
//Class to hold each form element
var FormElement=function(element){
var that=this;
this.element=element;
var initialVal=this.element.val();
var isEdited=false;
this.element.focus(function(){clearBox()});
this.element.blur(function(){fillBox()});
var clearBox=function(){
if(!isEdited){
that.element.val("");
isEdited=true;
}
}
var fillBox=function(){
if(that.element.val()==""){
that.element.val(initialVal);
isEdited=false;
}
}
}
var add=function(elementId){
new FormElement($('#'+elementId));
}
return{
add:add
}
}();
然后您只需使用ID属性值附加每个元素。像这样:
$(function(){
formDefaulter.add('contact_name');
formDefaulter.add('contact_email');
formDefaulter.add('contact_msg');
});
如果删除了内容,也会使用原始值重新填充表单元素。无论如何,希望这对某人有帮助。