Как сохранить разрывы строк в Scriptaculous InPlaceEditor?

#php #javascript #jquery #scriptaculous #inplace-editing

#php #javascript #jquery #scriptaculous #inplace-редактирование

Вопрос:

У меня есть страница с различными текстовыми полями, которые можно редактировать с помощью Scriptaculous (есть ли вариант получше?):

 <h4>
    <span id="someID">
        <?php echo $_SESSION['someID']; ?>
    </span>
</h4>
  

PHP файл выглядит следующим образом:

 <?php
if(!isset($_SESSION['someID']))
$_SESSION['someID'] = "Some text which spans more than <br />one line of a textarea";
?>
  

Когда я нажимаю на элемент и он становится текстовой областью, разрывы строк присутствуют. Однако, когда текстовая область теряет фокус и возвращается к тому, каким элементом она была, разрывы строк теряются.

Есть ли способ сохранить разрывы строк? Должен ли я как-то использовать n вместо <br /> ?

Ответ №1:

Точно так же тег <textarea> строки разрыва <br/> обрабатывается как текст.

Если вы измените его на rn , это будет работать.

Почему дополнительный r ? Например, в Windows / IE / etc простого n недостаточно. 😉

Комментарии:

1. К сожалению, это не совсем так просто. Содержимое PHP-файла изначально отображается в виде текста (так необходимо <br /> ) — только при нажатии на элемент он превращается в текстовую область.

2. Почему? Во время события click вы изменяете это <p> на <textarea> . Замените текст и здесь, и это сработает.

3. Я действительно не понимаю этого, извините. Событие click уже привязано к Scriptaculous. Вы хотите сказать, что я должен делать что-то вроде: $('#someID').live('click', function() {var content = $(this).html(); content = content.replace("<br />", "rn") });