Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Мгновенное редактирование текста
 
 автор: qwofer   (28.01.2012 в 19:36)   письмо автору
 
 

Доброго времени суток, форумчане.

Есть задача на редактирование текста.
Представим таблицу из двух колонок и нескольких строк.
Левая колонка - краткое описание правой.
Например, если в левой написано "О пользователе", то в правой будет написан текст о пользователе.
Нужно при двойном щелчке на текст правой колонки войти в режим редактирования, т.е. ввода текста не перезагружая страницу.
Как это осуществить лучше всего?
Думал сделать текстовое поле справа отключенное (атрибут disabled), но не знаю как его в включить для редактирования после события onDblClick.
Или лучше сделать как-нибудь по другому?
Как?

  Ответить  
 
 автор: АЯС   (28.01.2012 в 20:54)   письмо автору
 
   для: qwofer   (28.01.2012 в 19:36)
 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script>
function fShow (x, y)
{
if (y && x.lang == 0) {x.readOnly = 0; x.lang = 1; x.style.backgroundColor = ''} //ВКЛ.
else {x.readOnly = 1; x.lang = 0; x.style.backgroundColor = 'silver'}            //ВЫКЛ.
}
</script>
</head>
<body>
<table cellpadding="0" cellspacing="0" border>
<tr>
<td style="padding: 20px">Description</td>
<td><textarea lang="0" readonly style="background-color: silver; width: 300px; height: 200px" ondblclick="fShow (this, 1)" onblur="fShow (this, 0)">bla-bla</textarea></td>
</tr>
</table>
</body>
</html>

* Двойной клик делает поле активным, повторный двойной клик или потеря фокуса - пассивным.

** Для того, чтобы во всех браузерах было видно - какое именно поле в данный момент активно, я дал пассивному серый фон style="background-color: silver", который при "активности" меняется на фон по умолчанию.

*** Таковых полей (<TEXTAREA> и <INPUT>) во втором столбце (и вообще на странице) может быть сколько угодно при одной единственной функции в скриптовом блоке. Не забывайте каждому прописывать readonly, lang="0" и ondblclick="fShow (this, 1)" с onblur="fShow (this, 0).

**** Соответственно, чтобы потом значения этих полей отправить на сервер, надо каждому из полей дать атрибут NAME с каким-то значением и перед (и после) таблицы прописать теги <FORM> (и </FORM>).

  Ответить  
 
 автор: qwofer   (12.02.2012 в 21:33)   письмо автору
 
   для: АЯС   (28.01.2012 в 20:54)
 

Ваш ответ помог мне, огромное спасибо, я именно так все и сделал, только добавил стили курсора, убрал рамки в режиме чтения и т.п., спасибо что подсказали!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования