DropDownListFor OnChange JQuery没有运行代码

时间:2014-11-11 00:35:14

标签: c# jquery asp.net-mvc-4

我有一个带有下拉列表的编辑模板:

    @Html.DropDownListFor(model => model.task_state_id,
    new SelectList((System.Collections.IEnumerable)ViewData["TaskStates"], "task_state_id", "state"),
             new { @Id = "ddlState" })

在我的视图中,我有这个脚本:

<script type="text/javascript">
$(this.document).ready(function () {
    $('#ddlState').change(function () //wire up on change event of the 'country' dropdownlist
    {
        var selection = $('#ddlState').val(); //get the selection made in the dropdownlist
        alert("ho");
        if (selection === 4) {
            alert("hi");
            $('#CompletionDate').val() = @DateTime.Now.Date;
        }
        var completion = $('#CompletionDate').val();
        alert(completion);
    })
});
</script>

由于某种原因,此脚本将无法运行并显示任何警报。当我删除所有代码并且只有alert("Hello World!")alert(selection)时,它会显示警告,没有任何问题。但是为什么当我执行我的真实代码时它不会显示任何内容?

对于记录,脚本文件位于Details.cshtml中,而dropdownlistfor位于编辑器模板中。

更新1

工作脚本如下:

@section Scripts{

<script type="text/javascript">
$(this.document).ready(function () {
    $('#ddlState').change(function () //wire up on change event of the 'country' dropdownlist
    {
        var selection = $('#ddlState').val(); //get the selection made in the dropdownlist
        if (selection == '4') {
            $('#CompletionDate').val('@DateTime.Now.Date');
        }
        var completion = $('#CompletionDate').val();
        alert(completion);
    })
});
</script>
}

1 个答案:

答案 0 :(得分:0)

如果(选择=== 4)代码可能有一些问题。 if(selection == 4) 我认为变量不是对象,所以你不需要使用'===' 无论如何,也许您应该使用Chrome Web开发人员插件来跟踪其行为。