Я создаю веб-страницу с формой отправки, где вы можете отправить несколько периодов времени. В каждый период вы можете добавлять дополнительные комментарии при нажатии на флажок. Это работает отлично в течение 1 периода, но когда я добавляю больше периодов с.clone() в jQuery, он изменяет все флажки.
Как мне решить эту проблему?
У вас есть ошибки в javascript-кодах. Во-первых, вам нужно показать/скрыть текстовое поле только для этого раздела. Для этого вы можете использовать методы closeest closest()
и find()
для jQuery. Во-вторых, при проверке проверяемого свойства лучше использовать $ (this) для jQuery, потому что javascript это что-то другое. Наконец, при клонировании элемента вы должны использовать true
параметр, если хотите также клонировать действия элементов.
Рабочие коды:
$( document ).ready(function() {
$("#tijdstiptoevoegen").on( "click", function(e){
e.preventDefault();
$( ".tijdstip" ).clone(true).appendTo( ".tijdstippen" );
});
$(".chkUitleg").on("change",function() {
if($(this).is(":checked")) {
$(this).closest(".tijdstip").find(".verdere_uitleg").show();
}
else
{
$(this).closest(".tijdstip").find(".verdere_uitleg").hide();
}
});
});