<label><input type="checkbox" name="selection" value="wifi" checked onclick="filterLog(this)">wifi</label><br>
<select id="wifi" class="dropdownList" multiple size=3 onchange="filterLogSel()">
function filterLogSel() {
/* not fired by checkbox */
if (!checkMark) {
var breakCheck;
/* remove all the content */
var htmlSelectAdd = document.getElementById('logListBox');
for(var i=0, n=htmlSelectAdd.length; i<n; i++) {
htmlSelectAdd.options[i].remove();
n--;
i--;
}
/* add content according to the select value */
selecttags = document.getElementsByClassName('dropdownList');
for (key in jsonobj)
for(var i=0, n=selecttags.length; i<n; i++) {
for(var j=0, m=selecttags[i].length; j<m; j++) {
if (selecttags[i].options[j].selected) {
var re=new RegExp(selecttags[i].options[j].value);
if ((re.exec(jsonobj[key]))!=null) {
selectBoxOption = document.createElement("option");
selectBoxOption.value = key;
selectBoxOption.text = jsonobj[key];
htmlSelectAdd.add(selectBoxOption,null);
breakCheck = true;
break;
}
}
}
if (breakCheck) {
breakCheck = false;
break;
}
}
}
}
これを chrome でデバッグすると、select タグのオプションをクリックすると、select の onchange 関数ではなく、チェックボックスの onclick 関数が起動することがわかりました。select の onchange 関数を起動したい。