JS函数未定义。如何参考功能?

时间:2017-06-27 10:19:06

标签: javascript asp.net-mvc referenceerror dropdownlistfor

在我的mvc视图中,我有一个从字典中获取值的DropDownList

<div class="InputPart">
    @(Html.Telerik().DropDownListFor(model => model.PasportAddressRegionID)
                    .Name("ddlfRegions1")
                    .BindTo(new SelectList((IEnumerable<Dictionary>)ViewData["Regions"], "ID", "Title"))
                    .ClientEvents(e => e.OnChange("changeRegion1"))
                    .HtmlAttributes(new { style = "min-width:200px" }))
  </div>

我有JS函数 changeRegion1()来获取这些值。

<script type="text/javascript">
function changeRegion1() {
    var rgnId = $('#ddlfRegions1').data('tDropDownList').value();
    $.ajax({
        url: '@(Url.Action("_GetDistrict", "Staffs"))',
        data: { regionId: rgnId },
        type: "POST",
        success: function (result) {
            var combobox = $('#ddlfDistricts1').data('tDropDownList');
            combobox.dataBind(result);
            combobox.enable();
        }
    });
} </script>

我把函数放在同一个视图中,在所有代码下面,但是在运行时我得到未捕获的ReferenceError:未定义changeRegion1 。函数本身没问题,但在我看来,事件处理程序在这里看不到它。 所以我只是想知道这里有什么问题?我应该如何参考这个功能?

感谢任何帮助

1 个答案:

答案 0 :(得分:-1)

以下是针对ASP.Net和MVC的Kendu UI下拉列表事件处理的示例。与您的代码比较。该示例显示了事件,您调用ClientEvents,否则看起来没问题。

http://docs.telerik.com/aspnet-mvc/helpers/dropdownlist/overview

        @(Html.Kendo().DropDownList()
      .Name("dropdownlist")
      .BindTo(new string[] { "Item1", "Item2", "Item3" })
      .Events(e => e
            .Select("dropdownlist_select")
            .Change("dropdownlist_change")
      )
    )
    <script>
    function dropdownlist_select() {
        //Handle the select event.
    }

    function dropdownlist_change() {
        //Handle the change event.
    }