如何使用jQuery动态添加选项时捕获多个<select>的事件更改?</select>

时间:2013-01-18 07:49:17

标签: jquery select append

我需要在添加选项后捕获选择的更改事件。 因为我不希望从页面上的各种控件输入dublicate值。 将选项添加到页面后,我尝试了各种方法来捕获事件。

更新:我希望在添加选项后触发更改事件。(不是点击选择本身)

我尝试的是下面的内容。

<script src="/jquery-1.8.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#clickMe").click(function () {
                $('#example').append('<option value="foo">Foo</option>');
            });

            $("#example").find("option").change(function () {
                alert("changed1");
            });

            $("#example").on("change", function () {
                alert('changed2');
            });

            $("#example option").on("change", function () {
                alert('changed3');
            });

            $("#example").change(function () {
                alert('changed4');
            });
        });
    </script>
</head>
<body>
    <select id="example" multiple="multiple">
    </select>
    <button id="clickMe">
        Add an Option
    </button>
</body>

2 个答案:

答案 0 :(得分:2)

尝试对同一http://api.jquery.com/trigger/

使用触发器方法

同时检查

jquery trigger - 'change' function

@Edit 试试这个代码更改

$("#clickMe").click(function () {
    $('#example').append('<option value="foo">Foo</option>');
    $('#example').trigger("change");
});

答案 1 :(得分:1)

$(document).ready(function () {
            $("#clickMe").click(function () {
                $('#example').append('<option value="foo">Foo</option>');
 $('#example').trigger('change');
            });    

$('#example').on('change', function() {
          //alert
        });
   });