[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Форма-невидимка
bret
Постановка задачи
Имеем профиль пользователя, при клике на например имени оно превращается в текстовое поле, где его можно отредактировать. Редактируем, жмакаем в конце "изменить" и изменения сохраняются
Алгоритм
На данный момент предполагаю слой А, в который динамически (посредством jquery) будет вписываться слой Б и в зависимости от состояния некоторой логической переменной будет отображаться либо, например

HTML
<div class='field'><div style="display: block;">Вася</div><input type='hidden' name='firstname' value='Вася' /></div>

либо
HTML
<div class='field'><div style="display: none;">Вася</div><input type='text' name='firstname' value='Вася' /></div>

Собственно проблема
При попытке

HTML
$(".field").click(function(){
$(this).find("input:last-child").attr("type", "text");
});

firebug выдаёт ошибку uncaught exception: type property can't be changed, а ослик пишет нечто вроде "исключение брошено, но не поймано" sad.gif
Что делать и вообще, мб есть более приемлимые алгоритмы этого всего
З.Ы. С jquery начал знакомиться сравнительно недавно, так что решение было бы полезно и в общеобразовательных целях




Спустя 16 минут, 1 секунда (4.11.2009 - 22:11) vasa_c написал(а):
вместо type="hidden" -> type="text" делать style="display:none" -> style=""

Спустя 24 минуты, 27 секунд (4.11.2009 - 22:36) kirik написал(а):
Тип у поля нельзя менять. Ты можешь создать нужный элемент, унаследовать от него все остальные атрибуты (имя, значение...), и заменить им оригинальный (точнее вставить его после оригинального, который после - удалить).

Посмотри, если нужно, вот и вот (jquery) готовые штуки.

Спустя 9 минут, 56 секунд (4.11.2009 - 22:46) bret написал(а):
Спасибо, посмотрю , хотя готовому решению препочёл бы собственную мозголомку
Цитата (Javascript Inline Editor)
Step 3
    There is no Step 3!
- это здорово smile.gif

Спустя 4 дня, 20 часов, 38 минут, 54 секунды (9.11.2009 - 19:25) Romms написал(а):
я в jQuery - не очень шарю... но я бы єто всю сделал через inerHTML
пример:

<html>
<head>
<script
type="text/javascript">
<!--
var status='no';

function qwe(id)
{
if (status=='no')
{
document.getElementById(id).innerHTML =
'<input type="text" value="'+document.getElementById(id).innerHTML+'" onBlur="ewq(\'input_\',\'input11\')" id="input11" />';
status='yes';
}
}



function ewq(id,idi)
{
if (status=='yes')
{
document.getElementById(id).innerHTML =
document.getElementById(idi).value;
status='no';
}
}

-->
</script>
</head>

<body>
<span
id="input_" onclick="qwe('input_')">VASYA TIMUR</span>
</body>
</html>


Приблизительно wink.gif


_____________
Бывает, ты ешь медведя, а бывает, что медведь ест тебя (с)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.