嗨 Aditya,
我试图解决这个问题。我创建了类似的表格形式,其中包含 day1,day2...Day29,Day30,Day31 等列。这里我只关注 day29,Day30,Day31 因为只有这些列会受到影响年的变化。我在年份变化时调用了 JavaScript 函数 hideShow() 而不是动态动作
以下是 hideShow 的代码,其中 f04、f05、f06 是 day29、day30、day31。在此功能中,我还添加了闰年的可能性
function hideShow(pThis)
{
var month=$(pThis).closest('tr').find('[name="f02"]').val();
var year=$(pThis).val();
if (Boolean(parseInt(year) % 4 == 0)&&Boolean(parseInt(year) % 100 != 0)||Boolean(parseInt(year) % 400 == 0)) {
if (month.trim()=='FEB') {
$(pThis).closest('tr').find('[name="f05"]').attr("disabled","disabled");
$(pThis).closest('tr').find('[name="f06"]').attr("disabled","disabled");
}
}
else {
if (month.trim()=='FEB') {
$(pThis).closest('tr').find('[name="f04"]').attr("disabled","disabled");
$(pThis).closest('tr').find('[name="f05"]').attr("disabled","disabled");
$(pThis).closest('tr').find('[name="f06"]').attr("disabled","disabled");
}
}
if(month.trim()=='APR') {
$(pThis).closest('tr').find('[name="f06"]').attr("disabled","disabled");
}
else if(month.trim()=='JUN') {
$(pThis).closest('tr').find('[name="f06"]').attr("disabled","disabled");
}
else if(month.trim()=='SEP') {
$(pThis).closest('tr').find('[name="f06"]').attr("disabled","disabled");
}
else if(month.trim()=='JAN'||month.trim()=='MAR'||month.trim()=='MAY'||month.trim()=='JUL'||month.trim()=='AUG') {
$(pThis).closest('tr').find('[name="f04"]').attr("disabled",false);
$(pThis).closest('tr').find('[name="f05"]').attr("disabled",false);
$(pThis).closest('tr').find('[name="f06"]').attr("disabled",false);
}
}
这里我只使用了禁用/启用,同样也可以应用 css 运行时,希望这段代码对你有帮助......