我有一些带有一些变量的脚本,我想根据被检查的复选框更新其中一个变量。默认情况下,该复选框未被选中。我现在拥有的是:
var checked = $('#accept').attr('checked');
if (checked) {
permission = "Y";
} else {
permission = "N";
};
var track = {
version: 123,
id: 123456789,
order: {
sv1: 'Y',
sv2: 'N',
sv3: 'Name',
sv4: permission,
orderid: '123xyz'
}
};
console.log(track);
我想根据复选框的点击事件更新变量“permission”的内容:
$('#accept').click(function () {
if (checked) {
permission = "Y";
} else {
permission = "N";
};
});
但这怎么可能?
答案 0 :(得分:1)
您可以点击:
$('#accept').click(function () {
var permission = this.checked ? "Y" : "N";
console.log(permission);
});
答案 1 :(得分:1)
如果您已将permission
存储到对象track
中,那么请毫不犹豫地使用您的对象并直接操作它并使用{{1}为其设置新值}。
=
永远不要忘记通过设置var permission = $('#accept').is(':checked') ? "Y" : "N";
var track = {
version: 123,
id: 123456789,
order: {
sv1: 'Y',
sv2: 'N',
sv3: 'Name',
sv4: permission,
orderid: '123xyz'
}
};
console.log( track.order.sv4 ); // returns: N
$('#accept').change(function () {
track.order.sv4 = this.checked ? "Y" : "N";
console.log( track.order.sv4 ); // returns: Y
});
。
var
使用jQuery $('#accept').is(':checked')
方法返回一个布尔值(true / false),该方法比我们使用.is()
设置为Ternary Operator ( ? : )
/ "Y"
< / p>
答案 2 :(得分:0)
你不能这样做:
$('#accept').click(function () {
if ($(this).prop('checked')) {
permission = "Y";
} else {
permission = "N";
};
});
这样,如果单击复选框,您将更改变量。
答案 3 :(得分:0)
问题是你正确地初始化了checked
,但显然它不会在点击复选框时得到更新。你将不得不再次检查。所以试试:
$('#accept').click(function () {
if ($('#accept').attr('checked')) {
permission = "Y";
} else {
permission = "N";
};
alert(permission);
});
答案 4 :(得分:0)
看看这个: 应该是$('#accept')。is(':checked')NOT if(checked)
[小提琴] [1]
[1]: http://jsfiddle.net/k6S3m/4/
答案 5 :(得分:0)
试试这个
$('#accept').on('change', function () { track.order.s4 = this.checked ? 'Y' : 'N'; });