php - 动态添加和删除嵌套(两级)输入元素?

标签 php javascript jquery html

这个问题我查了好几次了,没有找到答案,所以才来这里问。我已经知道如何添加和删除一级输入元素,如下所示:

<script type="text/javascript">
    $(document).ready(function() {
        $('#btn_addOpt').click(function () {
            var opt = $('<div></div>');
            opt.append('<p>Answer:</p>');
            opt.append('<input type="text" name="lable[]">');
            $('#opt').append(opt);
        });
        $('#btn_removeOpt').click(function () {
            $('#opt div:last').remove();
        });             
    });
</script>

html 的正文是:

<form action="" method="post">
    What's the question?<br/>
    <input type="text" name="name"/><br />
    <input type="button" id="btn_addOpt" value="Add Answer"/>
    <input type="button" id="btn_removeOpt" value="Remove Answer"/><br/>
    <div id="opt"></div><br/>
    <input type="submit" value="submit"/>
</form> 

这个想法是当我单击“添加答案”按钮时,一组元素:

<p>Answer:</p>
<input type="text" name="lable[]">

将被添加,并且在我单击“删除答案”按钮后也将被删除。但是,我尝试做的是将上面的所有元素作为一个组,其中包括:

What's the question?<br/>
<input type="text" name="name"/><br />
<input type="button" id="btn_addOpt" value="Add Answer"/>
<input type="button" id="btn_removeOpt" value="Remove Answer"/><br/>
<div id="opt"></div><br/>

我尝试动态添加和删除该组。所以我尝试:

<script type="text/javascript">
    $(document).ready(function() {
        $('#btn_addQues').click(function () {
            var que = $('<div></div>');
            que.append('<p>What\'s the question?</p>');
            que.append('<input type="text" name="name"/>');
            que.append('<input type="button" id="btn_addOpt" value="Add Answer"/>');
            que.append('<input type="button" id="btn_removeOpt" value="Remove Answer"/><br/>');
            que.append('<div id="opt"></div><br/>');
            $('#question').append(que);
        });

        $('#btn_removeQues').click(function () {
            $('#question div:last').remove();
        })

        $('#btn_addOpt').click(function () {
            var opt = $('<div></div>');
            opt.append('<p>Answer:</p>');
            opt.append('<input type="text" name="lable[]">');
            $('#opt').append(opt);
        });

        $('#btn_removeOpt').click(function () {
            $('#opt div:last').remove();
        });             
    });
</script>

body 变成:

<body>
    <input type="button" id="btn_addQues" value="Add Question"/>
    <input type="button" id="btn_removeQues" value="Remove Question"/>
    <form action="" method="post">
        <div id="question"></div>
        <input type="submit" value="submit"/>
    </form> 
</body>

但是,它可以动态添加和删除整组元素,但在组内,“添加答案”和“删除答案”按钮不起作用。似乎有些冲突。或者可能还有其他一些方法可以做到这一点。基本上,我尝试做的是通过按钮添加和删除一组元素,并且在该组内部还有两个按钮来添加和删除一些其他输入元素。所以这是一个嵌套(两级)元素的创建。并且所有填写的信息都会发布到另一个页面。我不确定我是否解释清楚,但有人可以帮忙吗?请提供一些代码,谢谢!

最佳答案

您需要将 onclick 事件重新绑定(bind)到新组中创建的新 html 元素。因此,复制 HTML 后,您需要执行 $("#btn_addQues).click("etc..."),因此您可能需要考虑为它们创建可重用的函数。

但是,如果您要使用 ID,它们必须是唯一的。

关于php - 动态添加和删除嵌套(两级)输入元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7958634/

相关文章:

javascript - 如何使 AngularJS 指令在不隔离范围的情况下明确定义其依赖项

javascript - 如何在 Jekyll Liquid 语法的 for 循环中获取图像的宽度和高度并将其转换为 js $ 变量?

php - YouTube API : Displaying thumbnails of each video. ..?

javascript - 在 Openshift 上运行 MEAN 站点时出现非常奇怪的 Mongoose/MongoDB 问题

javascript - JS - 无法在 Safari 中将输入类型更改为 FILE

javascript - 将 Gridster 插入 WordPress 模板

javascript - 带有谷歌地图API v3的overlayMouseTarget

php - 如何更改插入数据库的日期的时区?

php - 如何用点替换逗号,反之亦然

php - Android GCM 一台设备有多个registrationid