javascript - 当检查为 false 时,从 javascript 中的逗号分隔字符串中删除数字

标签 javascript jquery

我有一些按类型复选框输入:

<input type="checkbox" value="5da1dc651d011c56ef1cb3db_693715"  onchange="handlechange(this)">
<input type="checkbox" value="6da1dc651d011c56ef1cb3db_123689"  onchange="handlechange(this)">

handlechange()函数将添加输入值 checkedin

<input type="hidden" value="" class="GetVals" />

主要问题是,当检查为 false 时,应删除该输入的值 <input type="hidden" value="" class="GetVals" /> , 但它不会删除。

function handlechange(a) {
  var check = $(a).prop("checked");
  if (check == true) {
    var value = $(a).val();
    ids += value + ','

  } 
  else if (check == false) {
    var elements = ids.substring(0, ids.lastIndexOf(","))
    var element = elements.split(",");
  }
  $(".GetVals").val(ids)
}

最佳答案

您可以使用一些内置方法来实现结果。

您可以使用 .map()仅在带有 .get() 的复选框上和 join()像下面这样:

function handlechange() {
  var ids = $('input:checked').map((i, chk) => chk.value).get().join();
  $(".GetVals").val(ids)
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" value="5da1dc651d011c56ef1cb3db_693715"  onchange="handlechange(this)">
<input type="checkbox" value="6da1dc651d011c56ef1cb3db_123689"  onchange="handlechange(this)">

<input class="GetVals" style="width:500px;"/>

关于javascript - 当检查为 false 时,从 javascript 中的逗号分隔字符串中删除数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58780248/

相关文章:

asp.net - 使用 jQuery 打开新页面的模态对话框

javascript - 阴影 Bootstrap 框对话框

javascript - 这些 JavaScript 位运算符有什么作用?

javascript - 我该如何修复 --> 文件是 CommonJS 模块;它可以转换为 ES6 模块

php - 如何使用jquery获取html表td属性唯一id

php - 调用javascript函数来运行php代码

javascript - 如何在javascript中对数组进行统计分类?

javascript - 单击事件绑定(bind)的奇怪行为;事件未触发

javascript - jQuery 在点击时显示下一张图片不适用于 .first

javascript - jQuery .clone() 更改引用