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