Операции с текстом по умолчанию в textarea
Доброе утро! Помогите, пожалуйста, решить следующий вопрос.
<script>
$(document).ready(function(){
$('.fixBlock.edit input:button').attr('disabled', 'disabled');
$('.fixBlock.edit textarea').attr('disabled', 'disabled');
$('span.editTitle').click(function(){
$('.fixBlock.edit').fadeTo('200', 1).find('input:button').removeAttr('disabled').parent().find('textarea').removeAttr('disabled');
$('.fixBlock.edit textarea').text($(this).text());
$('.fixBlock.edit input[name=editId]').val($(this).parent().find('input:checkbox').attr('value'));
});
$('.fixBlock.edit :button[name=cancelEdit]').click(function(){
$('.fixBlock.edit').fadeTo('400', 0.2);
$('.fixBlock.edit textarea').empty().attr('disabled', 'disabled');
$('.fixBlock.edit input[name=editId]').val('');
$('.fixBlock.edit input:button').attr('disabled', 'disabled');
});
});
</script>
Заголовок
<div class="clTitle">
<input type="checkbox" name="category" value="32" />
<span class="editTitle">Заголовок</span>
<a class="add"><div></div></a>
</div>
Окно
<div class="fixBlock edit">
<div><textarea name="editName"></textarea></div>
<input type="button" name="edit" value="Сохранить" />
<input type="button" name="cancelEdit" value="Отменить" />
<input type="hidden" name="editId" value="" />
</div>
Сам вопрос насчёт $('span.editTitle').click(function(). Всё работает исправно. Кликая на заголовок, окошко проявляется и подставляются значения в форму. Кликая на второй заголовок, всё успешно меняется на новые параметры. Вопрос вот в чём. Если я отредактирую текст в форме (ну добавлю точку), то кликая на другой заголовок, в форму новые параметры не подставляются. Так же с кнопкой "отмена". Когда я в поле не редактирую текст, то при клике на кнопку текст удаляется и форма блокируется, если я отредактирую значения, то форма блокируется, а текст не уходит. Задача изначально была такой: Кликая на один из заголовков "поднимаем" окно и заполняем его данными. При нажатии на другой заголовок заменять в форме данные на новые. Нажимая на "Отменить" удалять все данные и "опускать" окно. Буду благодарен за помощь. Спасибо! |
Опять какие-то огрызки... :( Научитесь уже делать полные примеры.
|
Так я привёл весь код, задействованный в работе. Ну а если нужен полный полный пример, то вот:
<?php
defined('_JEXEC') or die('Restricted access');
$doc = & JFactory::getDocument();
$doc->addStyleSheet('components/com_catalog/files/css/main.css');
$doc->addScript('components/com_catalog/files/js/jquery-1.7.min.js');
?>
<script>
$(document).ready(function(){
tools();
$('a.add').hover(
function(){$(this).find('div').stop().animate({opacity: '1'}, 200);},
function(){$(this).find('div').stop().animate({opacity: '0'}, 200);}
);
$(':checkbox[name=category]').click(function(){
if($(this).is(':checked')) {
$(this).parent().parent().find('ul li input:checkbox[name=subcategory]').attr('checked', 'checked').attr('disabled', 'disabled');
} else {
$(this).parent().parent().find('ul li input:checkbox[name=subcategory]').removeAttr('checked').removeAttr('disabled');
}
tools();
});
$(':checkbox[name=subcategory]').click(function(){
tools();
});
function tools() {
var numCategory = $(':checkbox[name=category]:checked').length;
var numSubCategory = $(':checkbox[name=subcategory]:checked').length;
if(numCategory > 0 || numSubCategory > 0) {
$('.fixBlock.tools').fadeTo('200', 1).find('input:button').removeAttr('disabled');
} else {
$('.fixBlock.tools').fadeTo('400', 0.2).find('input:button').attr('disabled', 'disabled');
}
}
$('.fixBlock.edit input:button').attr('disabled', 'disabled');
$('.fixBlock.edit textarea').attr('disabled', 'disabled');
$('span.editTitle').click(function(){
$('.fixBlock.edit').fadeTo('200', 1).find('input:button').removeAttr('disabled').parent().find('textarea').removeAttr('disabled');
$('.fixBlock.edit textarea').text($(this).text());
$('.fixBlock.edit input[name=editId]').val($(this).parent().find('input:checkbox').attr('value'));
});
$('.fixBlock.edit :button[name=cancelEdit]').click(function(){
$('.fixBlock.edit').fadeTo('400', 0.2);
$('.fixBlock.edit textarea').empty().attr('disabled', 'disabled');
$('.fixBlock.edit input[name=editId]').val('');
$('.fixBlock.edit input:button').attr('disabled', 'disabled');
});
});
</script>
<form method="post" action="index.php">
<div class="comWrapper comTable">
<?php
$cellInRow = '0';
foreach($this->data as $group) {
?>
<?php echo ($cellInRow == '0') ? '<div class="comTableRow">' : ''; ?>
<div class="comTableCell">
<div class="specList">
<div class="clTitle">
<input type="checkbox" name="category" value="<?php echo $group->id; ?>" />
<span class="editTitle"><?php echo $group->category; ?></span>
<a class="add"><div></div></a>
</div>
<?php echo $this->model->subcategory($group->subcategory); ?>
</div>
</div>
<?php
$cellInRow++;
if($cellInRow == '3') {echo '</div>'; $cellInRow = '0';}
}
?>
</div>
<input type="hidden" name="option" value="com_catalog" />
<input type="hidden" name="task" value="" />
<input type="hidden" name="view" value="structure" />
<input type="hidden" name="layout" value="default" />
<div class="fixBlock edit">
<div><textarea name="editName"></textarea></div>
<input type="button" name="edit" value="Сохранить" />
<input type="button" name="cancelEdit" value="Отменить" />
<input type="hidden" name="editId" value="" />
</div>
<div class="fixBlock tools">
<input type="button" name="delete" value="Удалить" />
<input type="button" name="publicToggle" value="Изменить состояние" />
</div>
</form>
Только это слой с вида (компонент для Joomla) |
Опять эти ПХПисты... :D Ты думаешь мне твоё ПХП сдалось?
|
Было сказано "полный пример". Я привёл полный пример, что опять не так.
Спасибо - помог разобраться знакомый. Удачи Вам! |
Цитата:
|
/facepalm
никто про PHP не спрашивал.. вопрос про HTML и jQuery... php можно интерпретировать как сторонний текст.... |
n1ko, твоя проблема - тебе и видней...
|
| Часовой пояс GMT +3, время: 09:52. |