如果文本框内已经有用户输入的内容了,那么就不应该进行清除文本款内容这个动作了。
blueprince给出了如下代码:
<script type="text/javascript">
function OnEnter( field ) {
if( field.value == field.defaultValue ) { field.value = ""; }
}
function OnExit( field ) {
if( field.value == "" ) { field.value = field.defaultValue; }
}
</script>
<input type=text value="预设文字" onmouseover="this.focus(); OnEnter(this)"
onmouseout="this.blur(); OnExit(this)">
不过上面的代码有一个非常奇怪的行为,就是当鼠标移出文本框后,文本框就会失去焦点,从而造成用户输入无效,应该是由OnExit函数造成的。而浏览器的默认行为应该是:只要用户不点击页面其它部分或者是按tab键,已经获得焦点的表单就不应该失去焦点。我们稍微修改一下代码就可以让文本框的行为回归正常,效果和代码如下:
<script type="text/javascript">
function OnEnter(field){
field.focus();
if(field.value == field.defaultValue){
field.value = "";
}
}
function OnExit(field){
if(field.value == ""){
field.value = field.defaultValue;
}
field.focus();
}
</script>