没有事件射击(平原!)Javascript多选元素

时间:2017-06-14 17:04:39

标签: javascript events multi-select

我正在尝试在调查页面上放置两个多选元素。一个选择一个人参加的研讨会,另一个选择一个人想要参加的研讨会,但没有。还有一个带有监听器的按钮,可以显示该人从第一个多选中选择的任何工作室的评级选项。 HTML就像这样:

<table class="edoa-content">
:
:
<td colspan="5" class="edoa-conv-color3">
<label><b>Which workshops/plenary sessions did you attend? (Hold down the control [Cmd on a Mac] button when you click on 
    each item in order to select more than one item from the list):</b></label></td></tr>
<tr><td>
<select tabindex="0" multiple id="wkshp" name="wkshp">
<option style="color: #AC2931; font-weight: bold; font-size: 105%" 
value="bmb">Workshop Name 1 (Workshop Presenter)
</option>
<option style="color: #AC2931; font-weight: bold; font-size: 105%" value="bmb">Workshop Name 2 (Workshop Presenter)
</option>
:
: etc.
</select>
</td></tr>
<tr><td colspan="5" style="text-align: right"><button class="edoa-btnLink" id="btn_wkshp" tabindex="1">Click here to rate the chosen workshops</button></td></tr>
:
:
<tr><td colspan="5" class="edoa-conv-color3">
<label><b>Please select any workshops you wanted to attend, but didn't or couldn't (Hold down the control [Cmd on a Mac] button when you click on each item in order to select more than one item from the list):</b></label></td></tr>
<select tabindex="2" multiple id="wkshpnot" name="wkshpnot">
<option style="color: #AC2931; font-weight: bold; font-size: 105%" value="bmb">Workshop Name 1 (Workshop Presenter)
</option>
<option style="color: #AC2931; font-weight: bold; font-size: 105%" value="bmb">Workshop Name 2 (Workshop Presenter)
</option>
:
: etc.
</select>
</td></tr>
:
:
etc.

我在加载时将多个选择(和按钮)附加一个监听器,整个页面由php构建,因为我在页面实际加载之前要进行处理,要在页面上设置变量等等附加到第一个的更改侦听器被解雇了,但我无法在第二个上触发任何事件。我尝试过模糊,改变和点击,而不是其中一个火灾。

第一个监听器的代码是:

var btn = document.getElementById(otherFld); 
if (btn){
   if(btn.style.display === 'none'){
     var selopts = document.getElementById(elemId).options; 
     var sels = 0;
     for (var i=0; i < selopts.length; ++i){ 
       if (selopts[i].selected){sels++;}
     }
     if (sels > 0){
        var add = confirm("Do you want to add to the list you've chosen or start over?\nPress OK to add, Cancel to start over");
       if (!add){
         remove_element("wkshpTbl");
       } else {
          btn.innerHTML="Please click here to add the workshops to rate";
       }
     }
     btn.style.display='inline';
   }
 }

目前,第二个听众的代码只是一个提醒。

我不确定发生了什么。我搜索过这个网站并用谷歌搜索它,我看到的一切都不适用于这种情况或者是指一些javascript库,而不是纯粹的/纯粹的javascript。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我只知道问题所在。我的元素列表中没有这个元素可以在页面中附加监听器。 D'哦!!