Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Копирование текста чекбокса (https://javascript.ru/forum/jquery/44533-kopirovanie-teksta-chekboksa.html)

werty1001 23.01.2014 17:28

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

$('.select .option label input').change(function() {
  $(this).parent("label").parent("div").parent("div").children("b").text( $('input:checked').parent("label").text()  );
});

<div class="select">
      <b>Выбор</b>
      <div class="option">
       <label><input type="checkbox" /> текст 1</label>
       <label><input type="checkbox" /> текст 2</label>
       <label><input type="checkbox" /> текст 3</label>
       <label><input type="checkbox" /> текст 4</label>
      </div>
     </div>


     <div class="select">
      <b>Выбор</b>
      <div class="option">
       <label><input type="checkbox" /> текст 1</label>
       <label><input type="checkbox" /> текст 2</label>
       <label><input type="checkbox" /> текст 3</label>
       <label><input type="checkbox" /> текст 4</label>
      </div>      
     </div>


Или ссылка на jsfiddle

danik.js 23.01.2014 17:43

http://jsfiddle.net/danya_postfactum/P5GdY/1/

рони 23.01.2014 18:17

werty1001,
вариант...:write:
<!DOCTYPE HTML>
<html>

<head>

  <meta charset="utf-8">
  <title>demo</title>
   <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(function () {
    $(".select").on("click", "input:checkbox", function (a) {
        var b = a.delegateTarget;
        a = $("b", b);
        !a.data("old") && a.data("old", a.text());
        b = $(":checked", b).parent().text() || a.data("old");
        a.text(b)
    });
})
</script>

</head>

<body>
<div class="select">
      <b>Выбор1</b>
      <div class="option">
       <label><input type="checkbox" /> текст 1</label>
       <label><input type="checkbox" /> текст 2</label>
       <label><input type="checkbox" /> текст 3</label>
       <label><input type="checkbox" /> текст 4</label>
      </div>
     </div>


     <div class="select">
      <b>Выбор2</b>
      <div class="option">
       <label><input type="checkbox" /> текст 1</label>
       <label><input type="checkbox" /> текст 2</label>
       <label><input type="checkbox" /> текст 3</label>
       <label><input type="checkbox" /> текст 4</label>
      </div>
     </div>
</body>
</html>

werty1001 23.01.2014 18:47

danik.js, рони

Благодарю за помощь.

рони 23.01.2014 20:16

danik.js,
не лезь в мои посты если не хочешь указать на ошибки

danik.js 23.01.2014 20:41

рони, я никуда не лез, я воспользовался системой оценки репутации. Она существует именно для выражения своего отношения к посту. К тому же я ясно прокомментировал причину.
А вот мы сейчас лезем со своими проблемами в чужой топик. Есть же ЛС.

Разверну мысль минуса: считаю что на форуме нужно давать нормальный код. Если тебе лень писать нормальный код - ну не пости ты код. Ну или не возмущайся за минусы. В то, что ты не умеешь писать имена переменных я не верю. Разве ты не знаешь слов event, target, text?

ksa 24.01.2014 11:17

рони, минусони его и вы в расчете... :D

Цитата:

Сообщение от danik.js
Разве ты не знаешь слов event, target, text?

Нашел к чему придраться... :(

danik.js 24.01.2014 11:28

Цитата:

Сообщение от ksa
Нашел к чему придраться

Сразу видно - код ты не читаешь. Ибо невозможно читать все эти a b c не матюкаясь. Это write-only код, ему не место тут на форуме.

ksa 24.01.2014 11:28

danik.js, у меня, например, основной язык вообще по 1-2-м символам понимает, что за команда или функция (из языка) используется...
Т.о. применение 1-2-х буквенных переменных для меня норма.

Пример процедурки
INFO(Urn,Name) ; ~ Записать информацию ~
 n i,j,k,key
 ; Urn  - urn гражданина 
 ; Name - имя переменной с текстом
 s:$g(Name)="" Name="txt"
 s key=$$Index^ASYS("FIO",Urn,,idset)
 s i=$o(@info@(key,"Txt",""),-1)
 s:i'="" i=i+1
 s @info@(key,"Urn")=Urn
 i $i(@info@(key,"All"))
 s j=""
 f k=1:1 s j=$o(@Name@(j)) q:j=""  s @info@(key,"Txt",i+k)=@Name@(j)
 q

И любой мало-мальски опытный кашевар его запросто поймет...

ksa 24.01.2014 11:29

Цитата:

Сообщение от danik.js
Сразу видно - код ты не читаешь. Ибо невозможно читать все эти a b c не матюкаясь.

Я специально вернулся и пересмотрел его код. :D
А потом написал сообщение. :)

Цитата:

Сообщение от danik.js
Это write-only код, ему не место тут на форуме.

По-мне так это крайность... :)


Часовой пояс GMT +3, время: 04:52.