使用复选框

时间:2015-05-25 10:24:01

标签: javascript jquery node.js checkbox

我正在创建一个带输入复选框的简单CRUD模型。我在服务器端没有问题,一切都很好。我使用NodeJS + MongoDB。但我在编辑现有用户时遇到问题。当我使用选中的复选框编辑现有用户(我获得带参数checked=true的JSON对象)时,我应该如何使用JS显示它?
这是 / routes / 文件夹中 users.js 文件的一部分

var express = require('express');
var router = express.Router();
var User = require('../../models/User');
var rest = require('restler');
router.get('/adduser', function(req, res){
  var user = new User();
  user.contacts.push({phone: '', email: ''});
  rest.get('http://localhost:3000/api/adduser').on('complete', function(data) {
    res.render('users/add', { title: 'Add New Users' , n: user});
  });
});

这是 views / users / fields.jade 文件的一部分,以便更好地理解:

.form-group
label.col-sm-2.control-label(for='email') E-mail:
.col-sm-10
input(type="email", placeholder="email", name="email", value = n.contacts[0].email,required)
.form-group
.col-sm-offset-2.col-sm-10
input#enabled(type="checkbox",style='text-align: center; vertical-align: middle;',placeholder="", name="enabled", value = n.enabled)
| Enable user

所以我的问题是我不明白在加载现有用户时我应该如何显示该复选框。
如果选中了用户属性n.enabled=true,如果不是n.enabled=false。因此,如果用户检查了该用户的负载,我需要输入要检查的输入 我已经尝试过按照以下方式进行操作,但是它写道我没有定义...而且我不知道如何传递n作为该函数的参数:

$(document).ready(function(){
  if(n.enabled=="true"){$("enabled").toggle(this.checked);}
});

2 个答案:

答案 0 :(得分:2)

fields.jade中,将value = n.enabled更改为checked = (n.enabled ? 'checked' : '')

答案 1 :(得分:1)

使用# id-selectors并直接使用n.enabled隐藏或显示您的元素,

 $("#enabled").toggle(n.enabled);
 //-^ prepend # before id selectors

toggle()将显示/隐藏您的元素,要选中取消选中,请使用prop()

$(document).ready(function(){
    $("#enabled").prop("checked",n.enabled);
});