Javascript、Jquery 和 jade : Dynamic forms not showing up in all the instances of relevant elements

标签 javascript jquery html css pug

我正在尝试生成动态表单并在有人点击评论部分的回复时显示它。

所以,

首先使用 Jquery 生成如下所示的表单。

script(type='text/javascript').
        $(document).ready(function() {
            var cVariable = !{JSON.stringify(data1)};
            var userEmail = !{JSON.stringify(data.userEmail1)};
            var serviceID = !{JSON.stringify(data._id)};

            if(cVariable == 1){
                var $myform = $('<form/>', {
                action: '/services/shoutOutReplyAdd', 
                method: 'post',
                name: 'reply-form' 

                });

                $myform.append($("<input/>", {
                type: 'text',
                name: 'reply',
                id: 'formAddReply', 
                placeholder: 'reply'
                }));

                $myform.append($("<input/>", {
                type: 'hidden',
                id: 'userEmail1',
                name: 'userEmail1',
                value: userEmail
                }));

                $myform.append($("<input/>", {
                type: 'hidden',
                id: 'serviceID',
                name: 'serviceID',
                value: serviceID
                }));

                $myform.append($("<input/>", {
                type: 'submit',
                id: 'btn',
                value: 'Post reply'
                }));

                $("#reply-comment-form").append($myform);

            }


        });

$(function(){
            $('.reply-comment').on('click', function(e){
                e.preventDefault();
                $(this).next('#reply-comment-form').show();
            });
        }); 

第二步是为主体指定 HTML/Jade。我从服务器获取消息值,并希望在用户单击回复文本时显示回复表单。循环执行三次。

each i in data.reply
            p #{i.msg}
            a(id='' class = 'reply-comment' href='') Reply
            #reply-comment-form         
        hr      
        br

另外指出,在 CSS 中,我有如下设置

  #reply-comment-form{ display:none; } 

我还有JQ功能,当点击 anchor 元素文本时,它会显示表单。这是它的代码。

$(function(){
            $('.reply-comment').on('click', function(e){
                e.preventDefault();
                $(this).next('#reply-comment-form').show();
            });
        }); 

当我检查生成的 HTML 时,我只看到表单仅分配给“reply-comment-form”div 元素的第一个实例。

数据库中有三个评论,所以我应该看到三个表单实例。但是,我只看到一个实例。

只是另一条信息,生成表单的代码和单击 anchor 元素的代码都在一个通用的 script(type='text/javascript'). block 中。

我们将不胜感激。

谢谢

最佳答案

在点击函数中创建表单就成功了。

$('.reply-comment').on('click', function(e){

                var $myform = $('<form/>', {
                action: '/services/shoutOutReplyAdd', 
                method: 'POST',
                name: 'reply-form' 

                });

                $myform.append($("<input/>", {
                type: 'text',
                name: 'reply',
                id: 'formAddReply', 
                placeholder: 'reply'
                }));

                $myform.append($("<input/>", {
                type: 'hidden',
                id: 'userEmail1',
                name: 'userEmail1',
                value: userEmail
                }));

                $myform.append($("<input/>", {
                type: 'hidden',
                id: 'serviceID',
                name: 'serviceID',
                value: serviceID
                }));

                $myform.append($("<input/>", {
                type: 'submit',
                id: 'btn',
                value: 'Post reply'
                }));

                $(this).append($myform);
                e.preventDefault();
                $(this).next('#reply-comment-form').show();
            });

关于Javascript、Jquery 和 jade : Dynamic forms not showing up in all the instances of relevant elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32060433/

相关文章:

javascript - Minimax 算法中的 Alpha-Beta 剪枝不会提高性能

javascript - 为什么 mongoose 以 ID 作为 Buffer 而不是字符串的对象形式返回对象 ID'?

javascript - Symfony 1.4 与 AJAX jQuery。如何改进包含一个依赖于另一个选择框的选择框的 AJAX 功能?

JavaScript-MVC.NET : Get value of Multimensional Array

javascript - 如何让Javascript同步运行函数

javascript - 如何使用 jQuery 将动态表行添加到 Wordpress 数据库

javascript - 简单的 html 编辑器并使用 div 或 textarea 获取 html 内容

html - Mega DropDown 菜单位置问题

javascript - 如何强制谷歌自动完成结果为 "native language"?

css - 是否有理由在 <nav> 中使用 <ul>?