【发布时间】:2017-11-02 20:32:26
【问题描述】:
我在编写函数时遇到了一些困难。 我在 JavaScript 中生成了一些复选框。
我想自动选择数组target[]“March”和“September”中的元素并让它们出现在文本区域中。所以“March”和“September”出现选中并出现在文本区域中。
但我也希望能够通过选择其他一些选项来编辑文本区域。因此,如果我选中“一月”并且没有触及“三月”和“九月”,它们会在文本区域中显示为选中并显示。
我真的需要它在没有 jQuery 的 JavaScript 中。
//array of options
var array = new Array();
array[0] = "January";
array[1] = "February";
array[2] = "March";
array[3] = "April";
array[4] = "May";
array[5] = "Juny";
array[6] = "July";
array[7] = "August";
array[8] = "September";
array[9] = "October";
array[10] = "November";
array[11] = "December";
// values to of checkboxes I want to auto-check
var target = new Array();
target[0] = "March";
target[1] = "September";
var cbh = document.getElementById('checkboxes');
var val = '';
var cap = "";
var j = "";
// the loop is creating the checkboxes with name, value...
for (var i in array) {
//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 array[i]
var cb = document.createElement('input');
var label = document.createElement("label");
cap = array[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);
}
* {
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> March and September have to be automatically checked
【问题讨论】:
标签: javascript html arrays checkbox