我是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 :(得分:2)
你也可以参考这个网站,了解如何使用jQuery插件复制字段,只需几行代码。 就像1 2 3 ...
一样简单http://www.ryscript.co.cc/jQuery/jQuery-duplicate-fields-form-submit-with-php/
感谢
答案 1 :(得分:0)
使用伪选择器:首先确保选择器不被复制
答案 2 :(得分: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());
}
});
}
不确定这种语法是否能正常工作,但这个想法应该是。