ASP.NET MVC Javascript在页面加载时未首次启动
ASP.NET MVC Javascript not firing the first time on page load
这应该很简单,但我无法让它发挥作用——当用户单击复选框时,我试图禁用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 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直到我点击复选框三次才启动——第三次它会禁用文本框,然后正常工作。
试试这个
$(function(){
$("#chkAllDayEvent").click(function () {
$('#EndTime').attr("disabled", $(this).is(':checked'));
$('#StartTime').attr("disabled", $(this).is(':checked'));
});
});
@Html.CheckBox("chkAllDayEvent", new { @id = "chkAllDayEvent" })
您不需要AllDayEvent_Checked
函数。因为您正在使用jquery绑定它。
或
function AllDayEvent_Checked() {
$('#EndTime').attr("disabled", $(this).is(':checked'));
$('#StartTime').attr("disabled", $(this).is(':checked'));
}
@Html.CheckBox("chkAllDayEvent", new { "@onclick" = "AllDayEvent_Checked();" })
这是因为您有一个函数可以为复选框分配单击处理程序。然后单击复选框时会触发此功能。因此,当第一次单击复选框时,您会为该复选框分配一个单击处理程序,而不是触发单击处理程序,这正是您想要的。
试试这个:
<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 { @id = "chkAllDayEvent" })
试试这个
@Html.CheckBox("chkAllDayEvent", new {@onclick = "AllDayEvent_Checked();" })
function AllDayEvent_Checked() {
$('#EndTime').attr("disabled", $("#chkAllDayEvent").is(':checked'));
$('#StartTime').attr("disabled", $("#chkAllDayEvent").is(':checked'));
}
function AllDayEvent_Checked() {
$('#EndTime').attr("disabled", $(this).is(':checked'));
$('#StartTime').attr("disabled", $(this).is(':checked'));
}
@Html.CheckBox("chkAllDayEvent", new { "@onclick" = "AllDayEvent_Checked();" })
相关文章:
- 如何防止网页加载后自动启动功能
- 在页面启动期间加载图像
- Jquery时间启动计时器,我有一个计时器的代码,但它在页面加载时启动
- 在呈现HTML样式和脚本时加载启动页
- 启动选项卡ajax在加载页面时加载内容
- 初次加载后关闭启动屏幕
- 在 Metro 风格应用中启动时加载数据
- 使用Bookmarklet在Firefox中为asp表单加载启动onclick事件
- 模式视图重新加载内容(启动MVC ASP.NET)
- 视频(自动播放)通过javascript隐藏,但已经在页面加载时启动
- 加载图像后启动转换事件
- 当窗口打开时,IE9在加载前启动事件
- Mozilla Firefox加载项将不会启动
- FileReader未在Ionic 2中加载端启动
- 如何在 Rails 中停止在页面重新加载时重新启动计时器
- TineMCE 不会启动 ajax 加载的文本区域
- JavaScript 在应用程序首次启动时不会加载
- JavaScript - 在启动(加载)时隐藏 Div
- 页面准备不在ajax上启动加载更多的帖子
- 为什么Soundmanager 2没有在firefox中启动加载事件(23)