Meteor:如何根据部分中的复选框数设置数字

时间:2014-12-10 00:18:13

标签: javascript jquery meteor

我目前有一个多部分表格,有许多复选框。我试图做的是显示总数旁边的复选框的数量。我总得出现的很好,但我不能为我的生活找到一种方法来循环输入,成功找到:检查,并打印出该数字。

我认为导致我出现问题的主要原因是,每次检查新框时都需要更新。下面是一些代码。

事件处理程序

'click input[type=checkbox]': function(){
    Session.set('selectedPlayerCount', n);
    Session.get('selectedPlayerCount');
}
  

此处的目标是设置所选玩家的数量,并将其传递给模板/助手。

辅助

countSelected: function(){
    n = 0;
    n++;
    var selectedPlayerCount = Session.get('selectedPlayer');
    return selectedPlayerCount;
}
  

在帮助程序中,每次触发事件时都会尝试迭代,结果将值增加1。我知道将n重置为0会导致一些问题,而且我知道需要更改其余部分才能解决。我只是想知道需要设置变量的位置才能提供默认值。

模板

<header>
   <p>{{ countSelected }}</p>
</header>
  

我现在试图在这里做的就是打印出助手所呈现的值。我不相信这会导致任何问题。

TL; DR - 如何计算表单某个部分中已检查输入的数量,并为每个表单增加一个值,然后在每次更改时返回该值。

1 个答案:

答案 0 :(得分:0)

我是新手,但也许这会服务:在会话变量中将您的帐户定义为零,每次选中复选框时都会增加会话变量的值

Session.set("countPlayersChecked", 0);
Template.proof.helpers({
    countSelected: function () {
        return Session.get("countPlayersChecked");
    }

});

Template.proof.events({
    'click input[type=checkbox]': function (event) {

        if($(event.target).is(':checked'))
            Session.set("countPlayersChecked", Session.get("countPlayersChecked")+1);
        else
            Session.set("countPlayersChecked", Session.get("countPlayersChecked")-1);
    }
});

希望它有用。