Дублирование поля формы Jquery - PullRequest
0 голосов
/ 04 декабря 2009

Я новичок в jquery и в лучшем случае считаю себя очень начинающим программистом, поэтому, пожалуйста, держитесь за меня. Но я думаю, что мне нужна твоя помощь!

У меня довольно длинная сложная форма php и требование дублировать набор полей. Я уверен, что должен быть более эффективный способ его кодирования, однако я не могу понять это. Ниже приведены 2 примера (более 15), в которых изменяются только идентификаторы, т.е.

$(document).ready(function(){
            $("#PN1").click(function(){
            if ($("#PN1").is(':checked')) {
             // Checked, copy values  
             $("#PNevent1").val($("#PNevent0").val());  
             $("#PNroom1").val($("#PNroom0").val());  
             $("textarea#PNdescription1").val($("textarea#PNdescription0").val());  
             $("select#PNmenu1").val($("select#PNmenu0").val());  
             $("#PNdate1").val($("#PNdate0").val());  
             $("#PNtimestart1").val($("#PNtimestart0").val());  
             $("#PNtimeend1").val($("#PNtimeend0").val());  

} else {
// Clear on uncheck
             $("#PNevent1,#PNroom1,textarea#PNdescription1,select#PNmenu1,#PNdate1,#PNtimestart1,#PNtimeend1").val(""); 
            }
            });

$("#PN2").click(function(){
            if ($("#PN2").is(':checked')) {
             // Checked, copy values  
             $("#PNevent2").val($("#PNevent1").val());  
             $("#PNroom2").val($("#PNroom1").val());  
             $("textarea#PNdescription2").val($("textarea#PNdescription1").val());  
             $("select#PNmenu2").val($("select#PNmenu1").val());  
             $("#PNdate2").val($("#PNdate1").val());  
             $("#PNtimestart2").val($("#PNtimestart1").val());  
             $("#PNtimeend2").val($("#PNtimeend1").val());  

} else {
            // Clear on uncheck
             $("#PNevent2,#PNroom2,textarea#PNdescription2,select#PNmenu2,#PNdate2,#PNtimestart2,#PNtimeend2").val(""); 
            }
            });


});

Ответы [ 3 ]

2 голосов
/ 15 июля 2010

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

http://www.ryscript.co.cc/jQuery/jQuery-duplicate-fields-form-submit-with-php/

спасибо

0 голосов
/ 04 декабря 2009

Поскольку селекторы - это просто строки, вы можете сделать что-то вроде:

for(var i = 1; i < 15; i++) {

     $("#PN" + i).click(function(){
         if ($("#PN" + i).is(':checked')) {
              // Checked, copy values  
              $("#PNevent" + i).val($("#PNevent + (i-1)").val());  
              $("#PNroom" + i).val($("#PNroom + (i-1)").val());  
              $("textarea#PNdescription" + i).val($("textarea#PNdescription" + (i-1)).val());  
              $("select#PNmenu" + i).val($("select#PNmenu" + (i-1)).val());  
              $("#PNdate" + i).val($("#PNdate" + (i-1)).val());  
              $("#PNtimestart" + i).val($("#PNtimestart" + (i-1)).val());  
              $("#PNtimeend" + i).val($("#PNtimeend" + (i-1)).val());  
         }
     }); 
}

не уверен, что этот синтаксис будет работать точно, но идея должна.

0 голосов
/ 04 декабря 2009

используйте псевдо-селектор: сначала, чтобы убедиться, что селекторы не дублируются

...