html - 有条件地禁用 JQuery 日期选择器上的星期几?

标签 html jquery

<input type="radio" id="alice" name="daysOff" value="alice">
<label for="alice">Alice</label><br>
<input type="radio" id="dave" name="daysOff" value="dave">
<label for="dave">Dave</label><br>

除了禁用周末外,如果上面的单选按钮在 Alice 上,我想禁用日历上的星期二,如果在 David 上,则禁用星期三。我应该在下面的函数中包含哪些 if 语句?

<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
        $( "#datepicker" ).datepicker({
                beforeShowDay: $.datepicker.noWeekends
        });
    } );
</script>           
<p>Date: <input type="text" id="datepicker"></p>

最佳答案

给你, 天 == 0 || day == 6 是周末,2 和 3 是星期二、星期三。这些日期在 option = "2", option = "3" 行中定义。

我在显示常规 #datepicker 时遇到了一点问题,当没有选择单选按钮时,只有周末作为默认值,出于某种原因,我无法在您实际选择时切换它一个单选按钮,它一直加载默认 #datepicker(只有周末),即使在单选按钮上读取的值正确更改,它也不会应用其他日期的更改。

所以我求助于使用 id #datepicker2 进行 2end 输入归档(也加载 2nd #datepicker2),第一个被隐藏和禁用(有占位符和控制台日志检查),它们都有相同的 name 因此在表单提交方面没有变化。

因此,如果您的单选按钮是强制性的(目前没有问题),那么这里可以删除几行代码。或者只是离开它,因为所有选项都已涵盖。

我希望这对你有用。

$("#datepicker").datepicker({
    beforeShowDay: function (date) {
        var day = date.getDay();
         if ( day == 0 || day == 6) {
                return [false]
            } else {
                return [true]
            }
    }
});


$('input[type=radio][name=daysOff]').change(function () {

$('#datepicker').css("display","none").attr("disabled", true);
$('#datepicker2').css("display","block").attr("disabled", false);

if ($('#datepicker').is(':disabled')){
console.log("disabled");
}else{
console.log("not disabled");
};


if (this.value == 'alice') {
    option = "2";
    $("#datepicker2").datepicker({
    beforeShowDay: function (date) {
        var day = date.getDay();
         if (day == option || day == 0 || day == 6) {
                return [false]
            } else {
                return [true]
            }
    }
});
    }
if (this.value == 'dave') {
    option = "3";
    $("#datepicker2").datepicker({
    beforeShowDay: function (date) {
        var day = date.getDay();
         if (day == option || day == 0 || day == 6) {
                return [false]
            } else {
                return [true]
            }
    }
});
    }   
});
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>


<input type="radio" id="alice" name="daysOff" class="daysOff" value="alice">
<label for="alice">Alice</label><br>
<input type="radio" id="dave" name="daysOff" class="daysOff" value="dave">
<label for="dave">Dave</label><br>

<p>Date: 
<input type="text" id="datepicker" name="datepicker" style="display:block" placeholder="datepicker">
<input type="text" id="datepicker2" name="datepicker" style="display:none" placeholder="datepicker2" disabled>
</p>

关于html - 有条件地禁用 JQuery 日期选择器上的星期几?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62394162/

相关文章:

javascript - 为什么当我点击选择框时,javascript 创建新的 div?

javascript - 在悬停问题上隐藏下拉菜单

html - 如何使用 chrome 扩展在网页中绘制图标?

javascript - 更改 jQuery 的默认序列化器

javascript - 在 JavaScript 中使用 .JSON

javascript - 如何使用 javascript 显示隐藏的表格行?

javascript - Ajax 调用总是返回成功

javascript - 如何在滚动时将 navbar-default 更改为 navbar-inverse?

javascript - 是否可以进一步优化该洪水填充算法?

jquery - 如何在响应前在类中添加属性并在响应后删除它?