.on('点击')jquery事件不适用于动态列表框

时间:2017-07-17 21:59:47

标签: javascript jquery html asp.net

当我点击多个列表框中的某个选项时,我想知道原因,以及如何解决它...

$(document).on("click, id", function () { //some code });

不起作用

这是我的HTML代码

<div class="box">
  <div class="input-group">
   <div class="text-primary">
     Select something
      <select name="boxAgents" class="form-control" id="boxAgents" size="5">
        </select>
  </div>
 </div>
</div>

当该列表框中填充了从ajax获得的一些动态数据时

$.each(res, function (index, item) {
   var listAgents = item.agentName;    
   $("#boxAgents").append('<option id="agent' + listAgents + '" value="' + listAgents + '">' + listAgents + '</option>');
});

当我点击我的&#34; boxAgents&#34;中的选项时,我就是这样。列表,将其传递给另一个列表框。 我尝试以这种方式传递选项

$(document).on("click", "option[id^='agent']", function () {
        var id = $(this).attr("id").replace("agent", "");
        $("#boxSelectedAgen").append('<option id="remove"' + id + ' value="' + id + '">' + id + '</option>');
    });

有趣的是,我的代码只有在删除&#34; size=5&#34;如果我使用&#34; multiple=multiple&#34;来自select标签,它就无法工作都不是。它只适用于我的&#34; boxAgents&#34;是一个正常的下拉列表。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

嗯,我做到了,我用其他方法解决了......我用了

$('#boxAgent').change(function(){ 
    var value = $(this).val();
    $("#boxSelectedAgen").append('<option id="remove"' + value + ' value="' + value + '">' + value + '</option>');
});

它将选项移动到另一个多文本框。

谢谢大家的支持!