我有7个复选框7周,并在页面上分开7天的时间选择器。选中复选框后,我想显示该工作日的时间选择器,如果未选中,我想隐藏相应的时间选择器
我使用了以下代码来实现这一点,而且它也在运行。
function Chk_WeekDay_Clicked(ctrl, week) {
if (ctrl.checked) {
if (week == "Monday")
document.getElementById("<%= Tm_Monday_From.ClientID %>").style.display = "";
else if (week == "Tuesday")
document.getElementById("<%= Tm_Tuesday_From.ClientID %>").style.display = "";
else if (week == "Wednesday")
document.getElementById("<%= Tm_Wednesday_From.ClientID %>").style.display = "";
//Rest of the days
}
else{
if (week == "Monday")
document.getElementById("<%= Tm_Monday_From.ClientID %>").style.display = "none";
else if (week == "Tuesday")
document.getElementById("<%= Tm_Tuesday_From.ClientID %>").style.display = "none";
else if (week == "Wednesday")
document.getElementById("<%= Tm_Wednesday_From.ClientID %>").style.display = "none";
//Rest of the days
}
}
Chk_WeekDay_Clicked是所有工作日复选框的事件处理程序。第一个参数是Clicked CheckBox控件,第二个参数是工作日的名称。
所有时间选择器控件的名称具有相同的命名模式, Tm_ [WeekName] _From
所以,我的问题是不是使用这些很多if-else我可以用几行来做吗?类似下面的代码。
function Chk_WeekDay_Clicked(ctrl, week) {
//I want this controlId by using parameter. And I must get it by ClientID as I am using it on page having MasterPage.
var controlId = "Tm_" + week + "_From";
if (ctrl.checked) {
document.getElementById(controlId).style.display = "";
}
else {
document.getElementById(controlId).style.display = "none";
}
}
我的实际问题是如何在变量中获得Control的ClientId。作为使用母版页的我的页面,我必须使用ClientID来获取控件ID。
那么,任何人都可以为此建议解决方案
答案 0 :(得分:2)
ClientID由ASP.NET生成,无法使用JavaScript变量创建。但是你可以做这样的事情
function Chk_WeekDay_Clicked(ctrl, week) {
//Since Client ID is generated by ASP.NET
//Create a list of ids
var controls = {
"monday" : "<%= Tm_Monday_From.ClientID %>",
"tuesday" : "<%= Tm_Tuesday_From.ClientID %>",
"wednesday" : "<%= Tm_Wednesday_From.ClientID %>",
}
//Fetch Control ID
var controlId = controls[week.toLowerCase()];
//Desired operation
if (ctrl.checked) {
document.getElementById(controlId).style.display = "";
}
else{
document.getElementById(controlId).style.display = "none";
}
}
答案 1 :(得分:0)
如果您对该功能passing control
,directly
可以访问properties
control
{/ 1}}。{/ 1>
function Chk_WeekDay_Clicked(ctrl, week) {
if (ctrl.checked)
ctrl.style.display = "";
else
ctrl.style.display = "none";
}