0

这是我拥有的当前代码,这会生成我的数据库中的“团队”列表以打印到页面。请注意 HTML 代码是使用 .jade 的模板编写的,但很容易理解发生了什么

团队.jade

div.teamList
                    form.form-horizontal(action='/team', id="teamForm")
                        div.control-group
                            label.control-label(for="teamId") Team Id:
                            div.controls
                                input#teamId.input-small(type="text")
                        div.control-group
                            label.control-label(for="teamName") Team Name:
                            div.controls
                                input#teamName.input-small(type="text")
                        div.control-group
                            div.controls
                                button#teamUpdate.btn.btn-primary.btn-mini(type="submit", value="Update Team") Update
                        div.control-group
                            label.control-label(for="newTeamName") Enter new team:
                            div.controls
                                input#newTeamName.input-small(type="text")
                        div.control-group
                            div.controls
                                button#teamConfirm.btn.btn-primary.btn-mini(type="submit", value="Save Team") Submit
                br
                div.teamList(style='border: none; background: #cecece; color: #1a1a1a; padding: 4px; width: 400px; height: 315px; overflow: auto;')
                    include showTeams

showTeams.jade

div#teamListDiv
    - if(allTeams.length > 0){
        table
            thead
                tr
                    th Name
            tbody
                tr
                    td
                        - each team in allTeams
                            include teamDisplay
    - } else {
        h3 No teams till now..
    - }

teamDisplay.jade

div.teams(id="team-#{team.key}")
  p #{team.name}

目前,这将在showTeams运行时生成数据库中所有团队的列表。该teamDisplay文件将为每个团队生成一个新的 div,key并将 div 的名称作为 div 的名称。

我不想在 div 内部生成,而是p #{team.name}想生成一个链接,这很容易做到。但是当点击链接时,我希望teamIdteamName文本框填充相应的数据。

我在 team.js 中有这个:

Team.initIndexPage = function(){
    $('#teamConfirm').click(function(){
        submitTeam();
    });

    submitTeam = function(){
        // frontend sends data - backend parses the data
        var teamForm = {
            name : $('#newTeamName').val()
        };
        // Basic validation
        $.post('/save/team', {'teamForm' : teamForm}, function(response) {
                console.log(response);
        });
    };

};

正如您所看到的,我指的#teamConfirm是提交一个新团队,所以我的问题是……我将如何提及单击任何团队链接的情况……它用正确的数据填充文本框?

任何帮助表示赞赏。

4

1 回答 1

0

我不确定我是否 100% 遵循了你所说的一切——但你的问题似乎与 node/mongo 没有太大关系,它更多的是前端 javascript 问题。如果您想跟踪点击了哪个链接,您可以使用 javascript 的“this”上下文。

因此,如果您为所有链接提供了一个通用类名并更改了 team.js 中的代码以使其工作如下:

$('.teamLink').click(function(){
    submitTeam($(this)); // $(this) keeps track of the actual link that was clicked.
});

然后,您可以在 submitTeam() 中获取该上下文并使用它来操作您想要的元素。

于 2013-01-25T20:43:14.467 回答