【问题标题】:array is empty after pushing object into it Jquery将对象推入Jquery后数组为空
【发布时间】:2018-10-11 11:26:01
【问题描述】:

我想将 { "studentid": achecked[index].value } 推送到一个数组中,但如果我推送它,我的数组就像 (2) [{…}, {…}] 而不是我的复选框值。

这是我的代码:

 var achecked = $("form input:checkbox:checked");
var values = [];
achecked.each(function (index) {
    var student = { "studentid": achecked[index].value };
    values.push(student);
});
console.log(values);

var postdata = {
    'displayname': $("#displayname").val(),
    'email': $("#email").val(),
    'students': [
    ]
};
postdata.students = values;
<input type="checkbox" name="toevoegen" value="10" />
<button class="btn btn-success" id="aanmaken">Aanmaken</button>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

有人知道并可以帮助我吗?

【问题讨论】:

  • 您是否尝试在控制台日志输出中单击{...}
  • @OKsure 是的,它是空的,它显示相同...
  • 你会在 sn-p 中添加一些复选框的例子吗?
  • 检查检查长度
  • 我认为问题可能是您没有表单元素,但您的选择器正在寻找一个。

标签: jquery arrays object


【解决方案1】:

似乎对我有用。不确定您的 HTML 是什么样的,但选择器 form input:checkbox:checked 将需要一个围绕所有复选框的表单。

$('button').on('click', function(e) {
  e.preventDefault();
  var achecked = $("form input:checkbox:checked");
  var values = [];
  achecked.each(function (index) {
      var student = { "studentid": achecked[index].value };
      values.push(student);
  });
  console.log(values);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input type="checkbox" checked value="1" />
<input type="checkbox" checked value="2" />
<input type="checkbox" value="3" />
<input type="checkbox" checked value="4" />
<input type="checkbox" checked value="5" />
<button>Submit</button>
</form>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    • 2017-06-24
    • 2020-03-23
    • 2017-12-05
    • 2017-10-10
    • 2023-03-14
    相关资源
    最近更新 更多