在某些日期禁用复选框? JavaScript的

时间:2017-10-17 21:31:23

标签: javascript jquery date checkbox input

我正在尝试查看是否可以在一周的某两天禁用表单上的复选框,例如我是否要在周一和周五禁用该复选框。我编写的代码将日值作为数字返回,然后将其转换为日期(名称)。我一直在修改的代码是禁用所有输入复选框onLoad,这些复选框已经应用了某个类,所以我一直在改变它,看看我是否可以编写一个If / Else语句,但似乎无法正确使用它。任何想法我可以改变这个,所以它会起作用吗?

var d = new Date();
var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
document.getElementById("demo").innerHTML = days[d.getDay()];

if days = 'Monday' {
    $('.sum').attr('disabled', true);
} else {
    $('.sum').attr('disabled', false);
}

<p style="margin: 20px;">Today is <span id="demo"></span>!</p>
<input style="margin: 20px 0 20px 20px;" value="50" type="checkbox" class="sum" data-toggle="checkbox" name="item"> Item 1 (Not availalbe Mondays/Fridays)

提前感谢任何见解!!

2 个答案:

答案 0 :(得分:2)

Count
  1. 如果你想把脚本放在最上面,使用onload方法确保加载了wole DOM,否则脚本必须放在html的底部
  2. 我在星期一到星期二用代码更改了今天的测试。 (见评论代码)
  3. 祝你有个美好的一天!

答案 1 :(得分:1)

你在这里遇到了一些问题:

  • 您的if语句需要围绕条件<{li>>的括号()
  • 您的情况应使用==或(更好)===进行比较,而不是=进行作业
  • days'Monday'进行比较将始终失败,因为days是一个数组。
  • $('.sum').attr('disabled', true)不是禁用该元素的好方法 - 请改用$('.sum').prop('disabled', true)

所以我尝试使用以下代码:

if ( days[d.getDay()] === 'Monday' ) {
    $('.sum').prop('disabled', true);
} else {
    $('.sum').prop('disabled', false);
}

...或者,更简洁

const isDisabled = ( days[d.getDay()] === 'Monday' ); //true or false
$('.sum').prop('disabled', isDisabled );