Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-Can';t克隆表单中的嵌套行_Javascript_Jquery_Html - Fatal编程技术网

Javascript jQuery-Can';t克隆表单中的嵌套行

Javascript jQuery-Can';t克隆表单中的嵌套行,javascript,jquery,html,Javascript,Jquery,Html,与问题类似,我有一个表单,希望使用clone()和remove()动态更改用户可见的字段。用户有两个控件:+和-分别用于添加或删除行 然而,我的问题略有不同,因为我想为表单中的每个嵌套行启用克隆,使它们彼此独立。用法是允许用户指定一个或多个时间间隔(例如,每天上午9点到下午5点)。换句话说,用户应该能够添加任意多的时间间隔,但单击星期一下的+或-,只会影响星期一内的字段行,而不会影响其他日期 屏幕截图 我能够在单击+或-复制整行(包括复选框)的位置获得它-这不是我想要的: 我知道From和

与问题类似,我有一个表单,希望使用
clone()
remove()
动态更改用户可见的字段。用户有两个控件:
+
-
分别用于添加或删除行

然而,我的问题略有不同,因为我想为表单中的每个嵌套行启用克隆,使它们彼此独立。用法是允许用户指定一个或多个时间间隔(例如,每天上午9点到下午5点)。换句话说,用户应该能够添加任意多的时间间隔,但单击星期一下的
+
-
,只会影响
星期一
内的字段行,而不会影响其他日期

屏幕截图

  • 我能够在单击
    +
    -
    复制整行(包括复选框)的位置获得它-这不是我想要的:

    我知道
    From
    To
    字段需要在父
    div
    中,而这个父
    div
    应该被克隆。但是,当我进行此更改时,它根本不会克隆

    以下是我的最新尝试:

    var regex=/^(+?)(\d+)$/i;
    变异克隆指数=$(“.time interval”).length;
    函数克隆(){
    $(this.parents(“.time interval”).clone()
    .附件(“正文”)
    .attr(“id”、“时间间隔”+克隆索引)
    .find(“*”)
    .each(函数({
    var id=this.id | |“”;
    var match=id.match(正则表达式)| |[];
    如果(match.length==3){
    this.id=匹配[1]+(克隆索引);
    }
    })
    .on('单击','添加间隔',克隆)
    .on('click','remove interval','remove');
    克隆索引++;
    }
    函数删除(){
    $(this.parents(“.time interval”).remove();
    }
    $(“.add interval”)。单击(“单击”,克隆);
    $(“.remove interval”)。单击(“单击”,删除)
    
    .row{
    背景#f8f9fa;
    边缘顶部:20px;
    }
    上校{
    边框:实心1px#6c757d;
    填充:10px;
    }
    .btn alt成功{
    颜色:#5c852c;
    背景色:#ebf5df;
    边框颜色:#ebf5df;
    }
    .btn高度危险{
    颜色:#af1310;
    背景色:#fae9e8;
    边框颜色:#fae9e8;
    }
    .actions>a{
    光标:指针;
    }
    
    日子*
    时代
    星期一
    上午12点
    凌晨1点
    凌晨2点
    凌晨3点
    凌晨4点
    上午5点
    上午6点
    上午7点
    上午8点
    上午9点
    上午10点
    上午11点
    下午12点
    下午一时
    下午二时
    下午三点
    下午四点
    下午五点
    下午六点
    下午7点
    晚上八点
    晚上9点
    晚上10点
    晚上11点
    到
    上午12点
    凌晨1点
    凌晨2点
    凌晨3点
    凌晨4点
    上午5点
    上午6点
    上午7点
    上午8点
    上午9点
    上午10点
    上午11点
    下午12点
    下午一时
    下午二时
    下午三点
    下午四点
    下午五点
    下午六点
    下午7点
    晚上八点
    晚上9点
    晚上10点
    晚上11点
    +
    -
    星期二
    上午12点
    凌晨1点
    凌晨2点
    凌晨3点
    凌晨4点
    上午5点
    上午6点
    上午7点
    上午8点
    上午9点
    上午10点
    上午11点
    下午12点
    下午一时
    下午二时
    下午三点
    下午四点
    下午五点
    下午六点
    下午7点
    晚上八点
    晚上9点
    晚上10点
    晚上11点
    到
    上午12点
    凌晨1点
    凌晨2点
    凌晨3点
    凌晨4点
    上午5点
    上午6点
    上午7点
    上午8点
    上午9点
    上午10点
    上午11点
    下午12点
    下午一时
    下午二时
    下午三点
    下午四点
    下午五点
    下午六点
    下午7点
    晚上八点
    晚上9点
    晚上10点
    晚上11点
    +
    -
    星期三
    上午12点
    凌晨1点
    凌晨2点
    凌晨3点
    凌晨4点
    上午5点
    上午6点
    上午7点
    上午8点
    上午9点
    上午10点
    上午11点
    下午12点
    下午一时
    
    js:
    
    var regex = /^(.+?)(\d+)$/i;
    var cloneIndex = $(".time-interval").length;
    function clone(){
    var $closestTimeInterval = $(this).closest(".actions").siblings(".time-interval").first();
        $closestTimeInterval.clone()
            .insertAfter($closestTimeInterval).attr("id", "time-interval" +  cloneIndex)
            .find("*")
            .each(function() {
                var id = this.id || "";
                var match = id.match(regex) || [];
                if (match.length == 3) {
                    this.id = match[1] + (cloneIndex);
                }
            });
        cloneIndex++;
    }
    function remove(){
        $(this).parents(".time-interval").remove();
    }
    $(".add-interval").on("click", clone);
    
    $(".remove-interval").on("click", remove);