javascript - 从数组中获取值并检查(勾选)相关复选框

标签 javascript html forms checkbox

我需要你的帮助。

如何从数组中获取值并使用 HTML 5 的 data 属性选中(勾选)其相关复选框?

即。

var x = "[monday,thursday]"

<input name="recurr_weekday" type="checkbox" data-weekday="sunday">
<input name="recurr_weekday" type="checkbox" data-weekday="monday">
<input name="recurr_weekday" type="checkbox" data-weekday="tuesday">
<input name="recurr_weekday" type="checkbox" data-weekday="wednesday">
<input name="recurr_weekday" type="checkbox" data-weekday="thursday">
<input name="recurr_weekday" type="checkbox" data-weekday="friday">
<input name="recurr_weekday" type="checkbox" data-weekday="saturday">

...经过一些处理后,以下复选框将在其中打勾:

<input name="recurr_weekday" type="checkbox" data-weekday="monday">
<input name="recurr_weekday" type="checkbox" data-weekday="thursday">

最佳答案

这是另一个具有一些优点的解决方案:

  • 即使同一天有多个复选框,例如两个带有 data-weekday="monday" 的复选框,它也能正常工作。
  • 它会取消选中所选日期数组中的任何recurr_weekday复选框。
  • 它只查询文档一次,效率更高 - 特别是当文档很大时。

document.querySelector('button').onclick = checkTheDays;

var myDays = ["monday", "thursday"];

function checkTheDays() {
  var checkboxes = document.querySelectorAll('[name="recurr_weekday"]');

  for (var i = 0; i < checkboxes.length; i++) {
    checkboxes[i].checked = myDays.indexOf(checkboxes[i].getAttribute('data-weekday')) > -1;
  }
}
Week 1:
<input name="recurr_weekday" type="checkbox" data-weekday="sunday">
<input name="recurr_weekday" type="checkbox" data-weekday="monday">
<input name="recurr_weekday" type="checkbox" data-weekday="tuesday">
<input name="recurr_weekday" type="checkbox" data-weekday="wednesday">
<input name="recurr_weekday" type="checkbox" data-weekday="thursday">
<input name="recurr_weekday" type="checkbox" data-weekday="friday">
<input name="recurr_weekday" type="checkbox" data-weekday="saturday">(Initially all unchecked)
<br />Week 2:
<input name="recurr_weekday" type="checkbox" data-weekday="sunday" checked>
<input name="recurr_weekday" type="checkbox" data-weekday="monday" checked>
<input name="recurr_weekday" type="checkbox" data-weekday="tuesday" checked>
<input name="recurr_weekday" type="checkbox" data-weekday="wednesday" checked>
<input name="recurr_weekday" type="checkbox" data-weekday="thursday" checked>
<input name="recurr_weekday" type="checkbox" data-weekday="friday" checked>
<input name="recurr_weekday" type="checkbox" data-weekday="saturday" checked>(Initially all checked)
<br />
<button>
  Check Mondays and Thursdays
</button>

关于javascript - 从数组中获取值并检查(勾选)相关复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41622558/

相关文章:

php - 使用 PHP 搜索 MySQL 表

javascript - msdropdown - 基于第一个下拉列表加载第二个下拉列表

javascript - jsPDF - 来自 HTML 和自定义字体

javascript - 斯卡拉 : how to inititialize a val with a check

javascript - 长按鼠标渲染组件

javascript - wso2 EMM iOS 服务器

javascript - 在 jQuery 中准确定位 <div>

JavaScript onClick 更新 Div

javascript - Angular 2 动态表单 - 实现取消功能

javascript - 在Primefaces中,如何通过javascript中的小部件类型获取小部件