Javascript 如何禁用div中的元素
我对禁用DIV标记中的有一些问题 这是一个日历脚本,我用它来禁用一些,我用它来选择日期后的时间 我在某些日期禁用了时间选择,但禁用的div元素仍保持启用状态 这是代码Javascript 如何禁用div中的元素,javascript,html,css,Javascript,Html,Css,我对禁用DIV标记中的有一些问题 这是一个日历脚本,我用它来禁用一些,我用它来选择日期后的时间 我在某些日期禁用了时间选择,但禁用的div元素仍保持启用状态 这是代码 <script type="text/javascript"> var startDate; var endDate; var ONEDAY = 3600 * 24; function resetDates() { startDate = endDate = null; } function filterDate
<script type="text/javascript">
var startDate;
var endDate;
var ONEDAY = 3600 * 24;
function resetDates() {
startDate = endDate = null;
}
function filterDates1(cal) {
startDate = cal.date.getTime();
/* If they haven't chosen an
end date before we'll set it to the same date as the start date This
way if the user scrolls in the start date 5 months forward, they don't
need to do it again for the end date.
*/
if (endDate == null) {
var day29 = document.getElementById("sel1").value;
var day30 = document.getElementById("sel1").value;
var day31 = document.getElementById("sel1").value;
var day32 = document.getElementById("sel1").value;
var day33 = document.getElementById("sel1").value;
var day34 = document.getElementById("sel1").value;
var day35 = document.getElementById("sel1").value;
if(day29 == "29/12/2011")
{
document.getElementById("hours").className = "show";
document.getElementById("hours1").className = "hide";
document.getElementById("hours3").className = "hide";
document.getElementById("hours4").className = "hide";
}
else if(day30 == "30/12/2011")
{
document.getElementById("hours").className = "show";
document.getElementById("hours1").className = "hide";
document.getElementById("hours3").className = "hide";
document.getElementById("hours4").className = "hide";
}
else if(day31 == "31/12/2011")
{
document.getElementById("hours").className = "show";
document.getElementById("hours1").className = "hide";
document.getElementById("hours3").className = "hide";
document.getElementById("hours4").className = "hide";
}
else if(day32 == "01/01/2012")
{
document.getElementById("hours").className = "show";
document.getElementById("hours1").className = "hide";
document.getElementById("hours3").className = "hide";
document.getElementById("hours4").className = "hide";
}
else if(day33 == "02/01/2012")
{
document.getElementById("hours").className = "hide";
document.getElementById("hours1").className = "hide";
document.getElementById("hours3").className = "show";
document.getElementById("hours4").className = "hide";
}
else if(day34 == "03/01/2012")
{
document.getElementById("hours").className = "hide";
document.getElementById("hours1").className = "hide";
document.getElementById("hours3").className = "show";
document.getElementById("hours4").className = "hide";
}
else if(day35 == "04/01/2012")
{
document.getElementById("hours").className = "hide";
document.getElementById("hours1").className = "hide";
document.getElementById("hours3").className = "show";
document.getElementById("hours4").className = "hide";
}
else
{
document.getElementById("hours1").className = "show";
document.getElementById("hours").className = "hide";
document.getElementById("hours3").className = "hide";
document.getElementById("hours4").className = "hide";
}
}
endDate = date.getTime();
}
/*
* This functions return true to disallow a date
* and false to allow it.
*/
/*
* Can't choose days before today or before the
* end date
*/
function disallowDateBefore(date) {
date = date.getTime();
if ((startDate != null) && (date < (startDate - ONEDAY))) {
//start date can't be prior to end date
return true;
}
var now = new Date().getTime();
if (date < (now - ONEDAY)) {
//start date can't be prior to today
return true;
}
return false;
}
/*
* Can't choose days before today or before the
* start date
*/
function disallowDateAfter(date) {
date = date.getTime();
if ((endDate != null) && (date > (endDate - ONEDAY))) {
//end date can't be before start date
return true;
}
var now = new Date().getTime();
if (date < (now - ONEDAY)) {
//end date can't be prior to today
return true;
}
return false;
}
// end hiding contents from old browsers -->
var cal = new Zapatec.Calendar.setup({
inputField : "sel1", // id of the input field
button : "button1", // What will trigger the popup of the calendar
ifFormat : "%d/%m/%Y", // of the input field: Mar 18, 2005
showsTime : false, //no time
dateStatusFunc : disallowDateAfter, //the function to call
onUpdate : filterDates1
});
//]]></script>
<style>
.hide
{
display: none; visibility:hidden;
}
.show
{
display: block;
}
</style>
但在这段代码中,如何完全禁用非活动div
谢谢你 找到隐藏的div,循环遍历它们的子项并禁用它们 通过以下函数,可以指定div的父级可以是document,也可以是包含form或div的某个窗体,也可以是具有特定类名的元素的标记名,还可以指定一个表示是否启用或禁用其子级的标志:
function disableOrEnableChildren(rootElement, tagName, className, disable) {
var els = rootElement.getElementsByTagName(tagName),
i, j,
r = new RegExp("(^| )" + className + "( |$)"),
c;
for (i = 0; i < els.length; i++)
if (r.test(els[i].className)) {
c = els[i].childNodes;
for (j =0; j < c.length; j++)
if (typeof c.disabled != "undefined")
c.disabled = disable;
}
}
disableOrEnableChildren(document, "div", "hide", true);
disableOrEnableChildren(document, "div", "show", false);
您不能禁用div,您可以通过将单个select元素的disabled属性设置为true来禁用它们:请尝试发布简明的代码示例。这使人们更容易回答您的问题。我有3个时间和日期字段:当用户选择例如31.12.2001时,时间选择标签被禁用,并启用其他时间选择表单,但每次当用户选择31.12.2011和其他部门选择例如12.00-16.00时,它是将第一个div的包含值发送给我:如果您不希望在提交请求时将selects的值发送到服务器,则必须在提交之前从表单中完全删除div,您可以侦听表单上的提交事件。但是这种逻辑在服务器上会更好。谢谢你的回答,先生>>!!!!这是一个密码。。这是真的吗www.amanor.ru/amanor.txt请告诉我,我必须在您的第一个函数脚本中更改什么才能使其工作?
if(day29 == "29/12/2011" ||
day30 == "30/12/2011" ||
day31 == "31/12/2011" ||
day32 == "01/01/2012")
{
document.getElementById("hours").className = "show";
document.getElementById("hours1").className = "hide";
document.getElementById("hours3").className = "hide";
document.getElementById("hours4").className = "hide";
}
else if(day33 == "02/01/2012" ||
day34 == "03/01/2012" ||
day35 == "04/01/2012")
{
document.getElementById("hours").className = "hide";
document.getElementById("hours1").className = "hide";
document.getElementById("hours3").className = "show";
document.getElementById("hours4").className = "hide";
}
else
{
document.getElementById("hours1").className = "show";
document.getElementById("hours").className = "hide";
document.getElementById("hours3").className = "hide";
document.getElementById("hours4").className = "hide";
}