Имам текстово поле, в което поставям текст по подразбиране. Нека просто кажем, че текстът в текстовото поле по подразбиране е „Вмъкнете текст тук“.
Използвам функциите onClick и onBlur на JavaScript, за да направя така, че когато потребителят кликне върху текстовото поле с „Вмъкване на текст тук“. съобщение, съобщението ще изчезне и ще бъде заменено с празно място. Ако текстовото поле е празно и потребителят щракне върху него, отново текстовото поле ще покаже „Вмъкване на текст тук“. съобщение. Ето моят код за този процес:
<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 и стойността $textarea, използвана в методите onClick и onBlur. Стойността на $textarea между двата тагова е:
Line 1
Line 2
Докато стойността на $textarea в методите onBlur и onClick е:
Line 1\n\nLine 2
Явно тези двамата са неравностойни.
Знам какъв е проблемът, но не знам как да го оправя. Опитах да заменя \n с други алтернативи, но проблемът се свежда до факта, че \n се обработва между таговете, докато не се регистрира като нов ред в методите onBlur и onClick.
Някой има ли идеи за решаване на този проблем?
Благодаря!