У меня есть текстовая область, в которую я помещаю текст по умолчанию. Скажем так, текст текстовой области по умолчанию — «Вставить текст здесь».
Я использую функции JavaScript onClick и 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 и значением $textarea, используемым в методах onClick и onBlur. Значение $textarea между двумя тегами:
Line 1
Line 2
Принимая во внимание, что значение $textarea в методах onBlur и onClick:
Line 1\n\nLine 2
Судя по всему, эти двое неравны.
Я знаю, в чем проблема, но я не знаю, как это исправить. Я пробовал заменить \n другими вариантами, но проблема сводится к тому, что \n обрабатывается между тегами, при этом он не регистрируется как разрыв строки в методах onBlur и onClick.
У кого-нибудь есть идеи, как решить эту проблему?
Спасибо!