DropDownListFor OnChange JQuery未通过代码运行

本文关键字:代码 运行 OnChange JQuery DropDownListFor | 更新日期: 2023-09-27 18:30:00

我有一个编辑器模板,它有一个下拉列表用于:

    @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>
}

DropDownListFor OnChange JQuery未通过代码运行

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