根据复选框值操作日期选择器天数



首先对不起我的英语。

我想根据复选框值更改日期选择器的可用天数。我使用的是Contact表单7和jQuery.ui,文本字段正确地初始化了日期选择器,但我不能根据复选框的值进行更改。

我在一张表格上有5个复选框,它们是客户工作的Physicals Place,你可以直接从他的位置订购东西和取货(食品车只是为了方便(,然后选择日期。我想要实现的是基于复选框隐藏一周中的几天,例如:

  1. 复选框=位置A(仅周一(

  2. 复选框=地点B(仅周五(

依此类推。

到目前为止我所拥有的:

//I will be more specific with the selector as soon as I get it to work 
jQuery("input[type=checkbox]").on('click', function () {
cVal = jQuery(this).val();
});
jQuery(function(){
jQuery(".cf7date").datepicker({
beforeShowDay: function(date) {
var day = date.getDay();
return [(day != 0 && day != 6),  ''];
}
});
});

这是取消周六和周日,运行良好我可以获得单击的复选框的值,但无论我尝试什么,如果将日期选择器封装在if/开关中以检查复选框值并输出不同的日期,它都将停止工作。

我有点困惑于如何通过";cVal";点击功能之外的变量

编辑:看起来我找到了一个修复程序,目前正在工作只是为了让你知道

jQuery(function(){
var cVal;
jQuery("input[name='checkbox_luogo']").on('click', function () {
cVal = jQuery(this).val();
console.log(cVal);
});
function returnDays(date){
var day = date.getDay();
if(cVal == 'x'){
return [(day != 0 && day != 6 && day != 5 && day != 4 && day != 3 && day != 2),  ''];
}else if(cVal == 'y'){
return [(day != 1 && day != 6 && day != 5 && day != 4),  ''];//Random stuff to test if it's working, not the final code
}
}

jQuery(function(){
jQuery(".cf7date").datepicker({
beforeShowDay: returnDays,
});
});
});

我还没有在jquery UI的文档中看到动态禁用天数的优雅方法。一种解决方法是为用户提供信息和自定义验证。您可以让表单拒绝某些单选和日期输入组合。

我在repl.it 中有一个运行示例

最新更新