Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.11.2011, 08:04
Аспирант
Отправить личное сообщение для n1ko Посмотреть профиль Найти все сообщения от n1ko
 
Регистрация: 08.11.2011
Сообщений: 37

Операции с текстом по умолчанию в 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().
Всё работает исправно. Кликая на заголовок, окошко проявляется и подставляются значения в форму. Кликая на второй заголовок, всё успешно меняется на новые параметры. Вопрос вот в чём. Если я отредактирую текст в форме (ну добавлю точку), то кликая на другой заголовок, в форму новые параметры не подставляются. Так же с кнопкой "отмена". Когда я в поле не редактирую текст, то при клике на кнопку текст удаляется и форма блокируется, если я отредактирую значения, то форма блокируется, а текст не уходит.

Задача изначально была такой:
Кликая на один из заголовков "поднимаем" окно и заполняем его данными. При нажатии на другой заголовок заменять в форме данные на новые. Нажимая на "Отменить" удалять все данные и "опускать" окно.

Буду благодарен за помощь. Спасибо!

Последний раз редактировалось n1ko, 10.11.2011 в 08:06.
Ответить с цитированием
  #2 (permalink)  
Старый 10.11.2011, 08:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Опять какие-то огрызки... Научитесь уже делать полные примеры.
Ответить с цитированием
  #3 (permalink)  
Старый 10.11.2011, 13:36
Аспирант
Отправить личное сообщение для n1ko Посмотреть профиль Найти все сообщения от n1ko
 
Регистрация: 08.11.2011
Сообщений: 37

Так я привёл весь код, задействованный в работе. Ну а если нужен полный полный пример, то вот:
<?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)
Ответить с цитированием
  #4 (permalink)  
Старый 10.11.2011, 13:38
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Опять эти ПХПисты... Ты думаешь мне твоё ПХП сдалось?
Ответить с цитированием
  #5 (permalink)  
Старый 10.11.2011, 14:44
Аспирант
Отправить личное сообщение для n1ko Посмотреть профиль Найти все сообщения от n1ko
 
Регистрация: 08.11.2011
Сообщений: 37

Было сказано "полный пример". Я привёл полный пример, что опять не так.
Спасибо - помог разобраться знакомый. Удачи Вам!
Ответить с цитированием
  #6 (permalink)  
Старый 10.11.2011, 14:49
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от n1ko
Я привёл полный пример, что опять не так
Это не раздел с ПХП. Поймите наконец, что есть и другие серверные языки... А объединяет нас - хтмл и JS...
Ответить с цитированием
  #7 (permalink)  
Старый 10.11.2011, 14:57
Аспирант
Отправить личное сообщение для n1ko Посмотреть профиль Найти все сообщения от n1ko
 
Регистрация: 08.11.2011
Сообщений: 37

/facepalm
никто про PHP не спрашивал.. вопрос про HTML и jQuery... php можно интерпретировать как сторонний текст....
Ответить с цитированием
  #8 (permalink)  
Старый 10.11.2011, 14:58
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

n1ko, твоя проблема - тебе и видней...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсветка синткасиса в textarea. Chrome. kadabrik Opera, Safari и др. 3 31.08.2011 12:38
С чего начать...автоматическое преобразование в bb-code в html внутри textarea javasc Events/DOM/Window 0 22.01.2011 06:37
Resize textarea, в копилку. Robox jQuery 0 17.01.2011 18:05
изменение размера textarea Vovan222 Общие вопросы Javascript 23 12.09.2010 20:14
textarea validation Петр Общие вопросы Javascript 3 08.12.2009 18:59