2009-12-03 87 views
0

我是jquery的新手,並認爲自己是一個非常新手的編碼器,所以請裸露在我身邊。但我認爲我需要你的幫助!Jquery表單字段複製

我有一個相當長的複雜的PHP表單,並要求複製一組字段。我確信必須有更高效的編碼方式,但我無法弄清楚。下面有兩個例子(超過15個),其中唯一改變的是ID,即#PN等。是否有可能通過字段循環的方式?

$(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(""); 
      } 
      }); 


}); 

回答

0

使用僞選擇:第一,以確保選擇arn't被複制

0

既然選擇僅僅是字符串,你可以這樣做:

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()); 
     } 
    }); 
} 

不知道這個語法可以正常工作,但這個想法應該。