我有一个带有下拉列表的编辑模板:
@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>
}
答案 0 :(得分:0)
如果(选择=== 4)代码可能有一些问题。 if(selection == 4) 我认为变量不是对象,所以你不需要使用'===' 无论如何,也许您应该使用Chrome Web开发人员插件来跟踪其行为。