如何在选择的原型javascript选择框中触发onchange事件?

时间:2011-12-10 09:23:12

标签: javascript prototypejs prototype-chosen

我正在使用所选原型进行选择框。现在我想在该选择框上触发onchange事件。 这是chosen prototype

的链接

如何做到这一点。请帮我。

<script type="text/javascript" src="/js/Event.simulate.js"></script>
<script src="/js/prototype.js" type="text/javascript"></script>
<script src="/chosen/chosen.proto.js" type="text/javascript"></script>


<div class="side-by-side clearfix" style="margin-bottom:14px;">

        <select data-placeholder="Select Loacation"  class="chzn-select" tabindex="2" name="source">
          <option value="">Select Loacation</option>
          <option value="">option1</option>
          <option value="">option2</option>
        </select>
  </div>



Event.observe($(".chzn-select"),'change', function(){

//alert($(".chzn-select").chosen());

})

2 个答案:

答案 0 :(得分:12)

在这一行中,您使用了$()的类名,但它不支持。

Event.observe($(".chzn-select"),'change', function(){

类名可以多次使用,因此从$$()返回一个数组,这是使用数组的一种方法。

$$(".chzn-select").invoke('observe', 'change', function() {
    ...
});

我之前没有使用过选择;它的说明说它需要设置,因此您可能必须在更改事件之外执行此操作。

document.observe('dom:loaded', function() {
    $$(".chzn-select").each(function(select) {
        new Chosen(select);
    });
});

答案 1 :(得分:6)

在选择框对象上使用“addEventListener”方法。

编辑 - 这是一个例子:

document.getElementById('selecboxid').addEventListener('change', SomeFunction(), false);