我有一个文本区域,在其中放入一些默认文本。假设默认的文本区域文本是"在此处插入文本"
我使用JavaScriptonClick和onBlur函数来制作它,这样当用户点击带有"在此处插入文本"消息的文本区域时,该消息就会消失,并被空白所取代。如果文本区域为空,并且用户单击退出,则文本区域将再次显示"在此处插入文本"消息。这是我这个过程的代码:
<textarea onclick="if(this.value=='Insert Text Here.'){this.value=''}" onblur="if(this.value==''){this.value='Insert Text Here.'}">Insert Text Here.</textarea>
此代码运行良好。当"在此处插入文本"被替换为由多行组成的内容时,就会出现问题。例如:
<? $textarea = "Line 1nnLine 2"; ?>
<textarea onclick="if(this.value=='<? echo $textarea ?>'){this.value=''}" onblur="if(this.value==''){this.value=<? echo $textarea ?>'}"><? echo $textarea ?></textarea>
在这种情况下,onClick和onBlur命令被破坏,因为两个textarea标记之间的$textarea值与onClick方法和onBlur方法中使用的$textarea值之间存在不相等。两个标签之间$textarea的值为:
Line 1
Line 2
而onBlur和onClick方法中$textarea的值为:
Line 1nnLine 2
显然,这两者是不平等的。
我知道问题是什么,但我不知道如何解决。我曾尝试用其他选项替换,但问题归结为在标记之间进行处理,而在onBlur和onClick方法中没有注册为换行符。
有人对解决这个问题有什么想法吗?
谢谢!
为文本区域的标题指定相同的默认值
<?php $textarea = "Line 1nnLine 2"; ?>
<textarea onclick="if(this.value==this.title){this.value=''}" onblur="if(this.value==''){this.value=this.title}" title="<?php echo $textarea ?>"><?php echo $textarea ?></textarea>
这种方法有很多优点:
每次鼠标悬停在文本区域时,它都会显示INSERT TEXT HERE,这也是facebook使用的