【发布时间】:2014-02-05 22:13:01
【问题描述】:
我有一个表单可以让用户选择复选框。我能够创建一个采用复选框的 textContent 的数组。只要选择它们就可以工作,但是,我希望在未选中框时从数组中删除文本。目前,当一个框未选中时,它会将未选中的框添加到数组中。我意识到这是因为任何时候发生更改功能(即选中/未选中)我的代码都会填充数组。我只是在寻找可以在未选中时删除字符串的东西。有什么建议吗?
html:
<section id="extra-features">
<div class="span3">
<label class="checkbox" for="Checkbox1">
<input type="checkbox" class="sum" value="50" data-toggle="checkbox"> Instagram
</label>
<label class="checkbox">
<input type="checkbox" class="sum" value="50" data-toggle="checkbox"> Review site monitoring
</label>
<label class="checkbox">
<input type="checkbox" class="sum" value="50" data-toggle="checkbox"> Google+
</label>
<label class="checkbox">
<input type="checkbox" class="sum" value="50" data-toggle="checkbox"> LinkedIn
</label>
</div>
<div class="span3">
<label class="checkbox">
<input type="checkbox" class="sum" value="50" data-toggle="checkbox"> Pinterest
</label>
<label class="checkbox">
<input type="checkbox" class="sum" value="50" data-toggle="checkbox"> FourSquare
</label>
<label class="checkbox">
<input type="checkbox" class="sum" value="50" data-toggle="checkbox"> Tumblr
</label>
<label class="checkbox">
<input type="checkbox" class="sum" value="50" data-toggle="checkbox"> Advertising
</label>
</div>
</section>
Javascript:
var options = [];
var inputs = document.getElementsByClassName('sum'),
for (var i=0; i < inputs.length; i++) {
inputs[i].onchange = function() {
if(this.checked){
options.push(this.parentNode.textContent.trim());
}
}
JSFIDDLE:http://jsfiddle.net/rynslmns/4dFGd/
【问题讨论】:
-
我对您要做什么感到困惑。您希望复选框在未选中或选中时被删除?还是您只想将其从数组中移除?
-
我希望将其从阵列中移除。即当检查 instagram 时,选项将是 ["Instagram"]。每当 instagram 未被选中时,我需要将选项设置为 [];
标签: javascript html checkbox