我正在制作一个简单的表单,大约有八个输入字段。我希望现场的初始值能够表明人们应该进入的内容。例如value =“name”,这样人们就知道在那里输入那里的名字。当我进入该领域时,如何让表格值消失?
虽然我的问题是,当他们进入该字段时,初始值是如何得到初始值消失的,以便初始值只是一个提示而不是永久值,在输入名称之前必须先擦除它们?
谢谢!
我正在制作一个简单的表单,大约有八个输入字段。我希望现场的初始值能够表明人们应该进入的内容。例如value =“name”,这样人们就知道在那里输入那里的名字。当我进入该领域时,如何让表格值消失?
虽然我的问题是,当他们进入该字段时,初始值是如何得到初始值消失的,以便初始值只是一个提示而不是永久值,在输入名称之前必须先擦除它们?
谢谢!
将“默认”值设置为“名称”。然后,使用javascript和'onfocus'事件清除该字段。
所以你会:
<input type="textbox" value="Name" onfocus="if (this.value=='Name') this.value='';"/>
基本的JavaScript:
<input type="text" value="name" onfocus='if(this.value=="name"){this.value="";}' />
这是你应该怎么做。
<input type="text" value="name" onfocus="this.value = this.value=='name'?'':this.value;" onblur="this.value = this.value==''?'name':this.value;">
如果他们点击它并点击默认值将返回。如果他们点击它并键入内容,它将不会尝试清除他们放回的内容,如果他们再次点击它。
更简单的方法也可能会被:
placeholder="Name"
我认为这个问题是它会删除输入的文字,这可能对用户不利。 – nicorellius 2013-02-12 18:03:10
对占位符有很好的支持: http://caniuse.com/#feat=input-placeholder – 2015-01-20 15:14:08
只是对于s & 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');
});
如果内容被删除,这也会将表单元素重新填充其原始值。无论如何,希望这对某人有帮助。
工作恰到好处。感谢您的快速响应! – fmz 2009-10-01 17:15:06
记得通过点击投票下方的绿色勾号来选择答案为“接受”。 – 2009-10-01 17:38:06