javascript - 删除复选框会使下面的复选框在 meteor 中选中

标签 javascript jquery django checkbox meteor

当您单击输入复选框时,我有一个运行的 meteor 单击事件处理程序。

调用“setTaskCompleted”更新django中的模型,将taskCompleted设置为true。 (我使用 django 来存储我的数据)

setCustomerTodo(customer):获取当前登录用户的待办事项。

一切正常,但是当我单击复选框时,它会从 View 中删除该字段并将其在 django 模型中标记为已完成。但它使输入位于检查的下方。

"click input[type='checkbox']": function(){
        //changing state task completed 
        this.completed = !this.completed;

        //getting active user
        var customer = Session.get('active_user').player_number 

        var data = {'task_id': this.id,
                    'completed': this.completed };

        //Changing state of task completed
        Meteor.call('setTaskCompleted', data, function(error, result){
            if(error){
                console.log(error);
            }else{
                setCustomerTodo(customer);
            }
        });
    }

//辅助函数

Checkbox Helper Function:
Template.tasks.helpers({
    data: function(){
        return Session.get('todo');
     }
});

//模板

{{#each data}}
    <tr>
        <td><input class="check-completed" checked="{{completed}} " type="checkbox"></td>
        <td>{{todo}}</td>   
    </tr>
{{/each}}

最佳答案

您的浏览器正在处理点击事件,您也在处理(您的 {{completed}})。尝试将 preventDefault() 添加到事件的开头:

"click input[type='checkbox']": function(event){
    event.preventDefault();
    //changing state task completed 
    this.completed = !this.completed;

关于javascript - 删除复选框会使下面的复选框在 meteor 中选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32894180/

相关文章:

python - Django 3.1 - "OperationalError: no such table"在进行或应用迁移之前使用 ORM 类模型时

python - Stripe 支付 APIConnection 错误

javascript - 调用函数数组,每个函数接收一个回调

javascript - 闭包时出现意外行为 : callback holds the last value

javascript - 如何在html中输入文本作为提交按钮?

jquery - JQuery each() 函数期间的 Action 指示器

javascript - 使用其上下文调用原始回调函数

javascript - 我可以在相同的 $ ('element.class' ) 的 change() 函数中运行一个 $ ('element.class' ).each() 函数吗?

javascript - 这段代码片段是如何实现闭包的?

python - Django 内联表单集和选择字段生成过多的数据库查询