更改功能仅在页面加载时调用

时间:2014-02-21 11:34:04

标签: javascript jquery asp.net-mvc-5 html.dropdownlistfor

我有这个下拉列表

   Sort by: @Html.DropDownListFor(model => model.SortBy, Model.LotSortings, "Relevance", new { @class = "form-control", @id="sort_ddl" })

我想在每次将选项从一个选项更改为另一个选项时调用get动作方法(不是Ajax方法)。

我很想展示如何解决这个问题,但作为迈向这一目标的第一步,我在页面顶部创建了这个脚本

<script>
    $('#sort_ddl').change(function () { alert('hi'); })
</script>

这会被调用,但仅限于页面加载,此时它不会发出警报。它永远不会被选择变更。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

document.ready函数中添加您的方法。当DOM准备就绪时,它会将更改event附加到元素。

<script>
    $(document).ready(function () {
        $('#sort_ddl').change(function () {
            alert('hi');
        })
    });
</script>

答案 1 :(得分:1)

您也可以尝试:

<script>
   $(document).ready(function () {
      $('#sort_dll').on('change', function() {
         alert( 'hi' );
      })
   });
</script>

答案 2 :(得分:1)

要动态添加,请使用.on

<script>
    $(document).ready(function () {
        $('body').on('#sort_ddl','change' ,function () {
            alert('hi');
        })
    });
</script>