ASP.NET MVC Javascript在页面加载时未第一次启动
这应该是非常简单的,但我不能让它工作-我试图禁用2下拉列表时,用户点击一个复选框ASP.NET MVC Javascript在页面加载时未第一次启动,javascript,asp.net-mvc,Javascript,Asp.net Mvc,这应该是非常简单的,但我不能让它工作-我试图禁用2下拉列表时,用户点击一个复选框 @Html.DropDownList("StartTime", new List<SelectListItem> { new SelectListItem{ Text="10:00 AM", Value = "10:00 AM" }, new SelectListItem{ Text="12:00 PM", Value = "12:00 PM" }, new SelectList
@Html.DropDownList("StartTime", new List<SelectListItem>
{
new SelectListItem{ Text="10:00 AM", Value = "10:00 AM" },
new SelectListItem{ Text="12:00 PM", Value = "12:00 PM" },
new SelectListItem{ Text="2:00 PM", Value = "2:00 PM" }
}
@Html.DropDownList("EndTime", new List<SelectListItem>
{
new SelectListItem{ Text="10:00 AM", Value = "10:00 AM" },
new SelectListItem{ Text="12:00 PM", Value = "12:00 PM" },
new SelectListItem{ Text="2:00 PM", Value = "2:00 PM" }
}
@Html.CheckBox("chkAllDayEvent", new { @onclick = "AllDayEvent_Checked();" })
<script type='text/javascript'>
function AllDayEvent_Checked() {
$("#chkAllDayEvent").click(function () {
$('#EndTime').attr("disabled", $(this).is(':checked'));
$('#StartTime').attr("disabled", $(this).is(':checked'));
});
}
</script>
我的问题是,当我进入页面时,Javascript不会启动,直到我点击复选框3次——第三次它禁用文本框,然后按照正常方式工作。试试这个
@Html.CheckBox("chkAllDayEvent", new {@onclick = "AllDayEvent_Checked();" })
function AllDayEvent_Checked() {
$('#EndTime').attr("disabled", $("#chkAllDayEvent").is(':checked'));
$('#StartTime').attr("disabled", $("#chkAllDayEvent").is(':checked'));
}
$(function(){
$("#chkAllDayEvent").click(function () {
$('#EndTime').attr("disabled", $(this).is(':checked'));
$('#StartTime').attr("disabled", $(this).is(':checked'));
});
});
@Html.CheckBox("chkAllDayEvent", new { @id = "chkAllDayEvent" })
这是因为您有一个为复选框分配单击处理程序的函数。然后单击复选框时触发此函数。因此,当第一次单击复选框时,您将为该复选框指定一个单击处理程序,而不是触发您想要的单击处理程序 试试这个:
<script type='text/javascript'>
$(document).ready(function () {
$("#chkAllDayEvent").click(function () {
$('#EndTime').attr("disabled", $(this).is(':checked'));
$('#StartTime').attr("disabled", $(this).is(':checked'));
});
});
</script>
试试这个
@Html.CheckBox("chkAllDayEvent", new {@onclick = "AllDayEvent_Checked();" })
function AllDayEvent_Checked() {
$('#EndTime').attr("disabled", $("#chkAllDayEvent").is(':checked'));
$('#StartTime').attr("disabled", $("#chkAllDayEvent").is(':checked'));
}
$(function(){
$("#chkAllDayEvent").click(function () {
$('#EndTime').attr("disabled", $(this).is(':checked'));
$('#StartTime').attr("disabled", $(this).is(':checked'));
});
});
@Html.CheckBox("chkAllDayEvent", new { @id = "chkAllDayEvent" })
您不需要AllDayEvent\u Checked函数。当您使用jquery绑定它时
或
不起作用,@onclick给出了一个错误-它不需要加引号。另外,@onclick=blah在视图中呈现onclick事件时工作正常,只是在视图的前几次单击中似乎不起作用checkox@AntP,没错,我一回答就看到你的答案了。