【问题标题】:Jquery Form field duplicationJquery表单字段重复
【发布时间】:2009-12-03 21:54:40
【问题描述】:

我有一个相当长的复杂 php 表单,并且需要复制一组字段。我确信必须有一种更有效的编码方式,但我无法弄清楚。下面有 2 个示例(超过 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(""); 
            }
            });
});

【问题讨论】:

    标签: jquery forms duplicates field


    【解决方案1】:

    您也可以参考这个网站,了解如何使用 jQuery 插件复制字段,只需几行代码。 简单到 1 2 3...

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

    谢谢

    【讨论】:

    • 很棒的文章,但我什么时候可以使用这样的东西?
    【解决方案2】:

    使用伪选择器 :first 确保选择器不会被复制

    【讨论】:

      【解决方案3】:

      由于选择器只是字符串,您可以执行以下操作:

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

      不确定这种语法是否能完全发挥作用,但这个想法应该可以。

      【讨论】:

        猜你喜欢
        • 2013-06-07
        • 1970-01-01
        • 2018-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多