带多行的HTML文本区域在Click和onBlur函数上换行

HTML Textarea With Multiple Lines Breaks onClick and onBlur Functions

本文关键字:Click onBlur 函数 换行 区域 HTML 文本      更新时间:2024-01-05

我有一个文本区域,在其中放入一些默认文本。假设默认的文本区域文本是"在此处插入文本"

我使用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 1'n'nLine 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 1'n'nLine 2

显然,这两者是不平等的。

我知道问题是什么,但我不知道如何解决。我曾尝试用其他选项替换,但问题归结为在标记之间进行处理,而在onBlur和onClick方法中没有注册为换行符。

有人对解决这个问题有什么想法吗?

谢谢!

为文本区域的标题指定相同的默认值

  <?php $textarea = "Line 1'n'nLine 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使用的