选中复选框时更新变量

时间:2013-07-09 08:09:57

标签: jquery variables object

我有一些带有一些变量的脚本,我想根据被检查的复选框更新其中一个变量。默认情况下,该复选框未被选中。我现在拥有的是:

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";
      };
});

Fiddle here

但这怎么可能?

6 个答案:

答案 0 :(得分:1)

您可以点击:

$('#accept').click(function () {
    var permission = this.checked ? "Y" : "N";
    console.log(permission);
});

FIDDLE DEMO

答案 1 :(得分:1)

为了更新对象密钥(sv4)值:

http://jsfiddle.net/k6S3m/6/

如果您已将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'; });