javascript - 复选框已选中,但 :checked doesn't work

标签 javascript jquery

我有几个复选框。我正在使用 .prop() 函数根据 JSON 响应(通过 ajax 请求加载数据)设置和重置复选框的默认值。问题是,如果我手动更改它们,它们显然不会改变这种行为。我无法通过 $('#checkbox :checked').val() 传递复选框的值,控制台日志显示“未定义”。这是因为 .prop() 函数吗?如何获取选中复选框的值?

如果您需要更多信息,我很乐意提供。 这里有一些代码:

if (json.event.public_visible == 1) {
  $('#event_public_visible').prop('checked', true);
} else {
  $('#event_public_visible').prop('checked', false);
}

if (json.event.package_event == 1) {
  $('#event_package_only').prop('checked', true);
} else {
  $('#event_package_only').prop('checked', false);
}

更新:更多代码

var editEvent = function () {
  if ($('#event_public_visible').is(':checked')) {
    console.log('test');
  }
  formData = {
    // ... other fields
    event_package_only: $('#event_package_only :checked').val(),
    event_public_visible: $('#event_public_visible :checked').val(),
    // ... more fields
  };

  $.ajax({
    url: base_url + "admin/events/editAsync",
    type: "POST",
    data: formData,
    dataType: "json",
    success: function (json) {
      // success handling
    }
  });
};

最佳答案

试试这个:$('#event_public_visible:checked').val()$('#event_public_visible:checked').val()

>

您可以尝试:('#event_public_visible:checked').length ? $('#event_public_visible:checked').val() : '';

示例:http://jsfiddle.net/infernalbadger/SfcjG/

关于javascript - 复选框已选中,但 :checked doesn't work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16016343/

相关文章:

javascript - 通过 javascript 修改 OWASP Zap Fuzz 参数

javascript - 使用 javascript 在 Rails 中执行 POST

javascript - 如何让旋转结果后弹出警报?

Javascript - Youtube API 检测删除/阻止的视频

javascript - 在子组件上 react 过时的错误日期

javascript - jQuery Mobile 1.4.3 修复了工具栏和页面内容问题

javascript - jQuery 每 5 个工作小时重置一次颜色模式

jquery - 滚动到容器顶部后隐藏元素

javascript - 不同 div 中 2 个相同布局的单个滚动?

javascript - 检测复选框在 Angular.js ng-change 事件中是否被选中或未被选中