auto select checkboxes by retrieving their value JavaScript

匿名 (未验证) 提交于 2019-12-03 02:42:02

问题:

I got some difficulties with one point since 1 week, I have 2 arrays, and I want to auto select checkboxes by retrieving the value inside one of the array.

First of all, I have a loop which create some checkboxes based on the first array choices[].

Every time I check one a checkbox, a text field is updated with a separator. "$#"

I save this text field by my own. But now I have an array with some values as string target[].

I want to auto select checkboxes which has his value inside the array target[]. So if I change a value in target[], and I refresh, the checkbox concerned will be automaticly selected.

Here is a snippet to see how it looks like now. PLease update it to answer.

I would prefer JavaScript but I deseperated so if you have Jquery it would be ok.

//array of options var choices = new Array(); choices[0] = "January"; choices[1] = "February"; choices[2] = "March"; choices[3] = "April"; choices[4] = "May"; choices[5] = "Juny"; choices[6] = "July"; choices[7] = "August"; choices[8] = "September"; choices[9] = "October"; choices[10] = "November"; choices[11] = "December";  var target = new Array() target[0] = "3"; target[1] = "8";  var cbh = document.getElementById('checkboxes'); var val = ''; var cap = "";  var j = ""; var t = document.getElementById('t');  // the loop is creating the checkboxes with name, value... for (var i in choices) {   //Name of checkboxes are their number so I convert the i into a string.    j = i.toString();    val = j;   //cap will be the value/text of choices[i]   var cb = document.createElement('input');   var label = document.createElement("label");    cap = choices[i];   var text = document.createTextNode(cap);   cb.type = 'checkbox';   cbh.appendChild(cb);   cb.name = cap;   cb.value = val;   label.appendChild(cb);   label.appendChild(text);   cbh.appendChild(label);   cb.addEventListener('click', updateText)  }  function updateText() {   t.value = [null, ...document.querySelectorAll('#checkboxes [type="checkbox"]')].reduce((s, el) => el && el.checked ? s = (s || '') + el.value + '$#' : s || '') }
* {   box-sizing: border-box; }  #data {   padding: 5px;   width: 100vw; }  .multiselect {   overflow: visible;   padding: 0;   padding-left: 1px;   border: none;   background-color: #eee;   width: 100vw;   white-space: normal;   height: 50px; }  .checkboxes {   height: 100px;   width: 100px;   border: 1px solid #000;   background-color: white;   margin-left: -1px;   display: inline-block; }  label {   display: inline-block;   border: 1px grey solid;   padding: 5px; }
<form>   <div id="data">     <div class="multiselect">       <div id="c_b">         <div id="checkboxes">         </div>       </div>     </div>   </div> </form>  <textarea id="t"></textarea>
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!