Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   чекбокс в динамике (https://javascript.ru/forum/events/46320-chekboks-v-dinamike.html)

ureech 05.04.2014 20:45

чекбокс в динамике
 
Здравствуйте. Есть ф-ция делающая кнопку пассивной.
<script>
function Go(Obj) {
    document.getElementsByName(Obj.name)[1].disabled=Obj.checked
}
</script>

<input name='test' type="checkbox" onclick="Go(this)" />
<input name='test' type="button" value="Go" />


На странице динамически вывожу фотки. Чекбокс должен активировать кнопку "редактировать". Как переделать этот код наоборот (на активацию) и глвное как связать его с id фотки. А то при нажатии на чеабокс под любой фоткой срабатывает всегда первая.
Подскажите, плиз,как это дело реализовать.

Erolast 05.04.2014 20:59

Цитата:

Как переделать этот код наоборот (на активацию)
Легко
<script>
function Go(Obj) {
    document.getElementsByName(Obj.name)[1].disabled=!Obj.checked
}
</script>
 
<input name='test' type="checkbox" onclick="Go(this)" />
<input name='test' type="button" value="Go" disabled="true"/>


Цитата:

как связать его с id фотки. А то при нажатии на чеабокс под любой фоткой срабатывает всегда первая.
Во-первых - при чем тут вообще фотка? Тебе надо по нажатию отключать кнопку, а не фотку - так и связывай с соответствующей кнопкой. Во-вторых - ты код-то свой читал? Чтобы "связать" чекбокс с кнопкой в твоем коде достаточно проставить им обоим уникальное имя.

ureech 05.04.2014 21:21

В том то и дело, что с фоткой.( с кнопкой тоже понятно).
Я вставляю кнопку с чекбоксом в {foreach key=id item=video from=$vid}...{/forech}
где выводится и фока с тегами. Под каждой фоткой появляется чекбокс и кнопка. Но любой чекбокс активирует только первую кнопку.

Erolast 05.04.2014 21:40

Тебе что активировать надо? Кнопку? Кнопку. При чем тут фотка? Прописывай и чекбоксу и соответствующей ему кнопке одно и то же имя, но это имя должно быть уникальным для каждой пары чекбокс-кнопка.

Erolast 05.04.2014 21:44

Повторюсь - имя должно быть уникальным для каждой пары чекбокс-кнопка. Это самое главное, без этого естественно будет активироваться только первая кнопка.

Вообще, по-хорошему при нажатии на чекбокс скрипт должен находить нужную кнопку только исходя из положения чекбокса на странице. Но сказать как это сделать невозможно без знания верстки.

ureech 05.04.2014 21:46

Вложений: 1
Давайте наглядно.

Erolast 05.04.2014 21:47

Да все поняли в чем у тебя проблема. Я дважды сказал, как это исправить, повторяю третий раз - имя для пары "кнопка-чекбокс" должно быть уникальным. Вариант лучше, повторяю второй раз - вообще переписать код, сделать поиск кнопки не по имени чекбокса, а только по его расположению в DOM.

ureech 05.04.2014 21:50

Если просто в скрипте у name указать id фотки, будет работать? Если да покажите синтаксис. Или связывать чекбокс и кнопку по id и опять же прибавить id фотки. Что то типа
<input name="test'.$video['id'].'" type="button" value="Go" disabled="true"/

Erolast 05.04.2014 21:52

Если в name укажешь любое уникальное для каждой пары кнопка-чекбокс значение - будет работать. Как вариант - указывать в имени ид фотки, да.

ureech 05.04.2014 21:58

Если бы работало?...Ладно, спасибо. Буду думать.:)


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