Javascript 正在获取jQuery Datepicker的实例和字段id

Javascript 正在获取jQuery Datepicker的实例和字段id,javascript,jquery,jquery-ui-datepicker,Javascript,Jquery,Jquery Ui Datepicker,我在这个问题上发现了很多类似的问题,但他们的答案在这里似乎都不起作用。我在一个网站上有一个日期选择器,当用户打字时,它会检查日期的输入。它工作得很好,但我也希望有颜色的日期在实时输入时是无效的。为此,我需要与Datepicker关联的输入字段的id 在Datepicker Definition中使用onClose函数时,我得到当前Datepicker对象的实例inst,通过inst.id我得到字段名。但这在parseDate函数中不起作用。我也不能传递inst或使其全局化,因为onClose在p

我在这个问题上发现了很多类似的问题,但他们的答案在这里似乎都不起作用。我在一个网站上有一个日期选择器,当用户打字时,它会检查日期的输入。它工作得很好,但我也希望有颜色的日期在实时输入时是无效的。为此,我需要与Datepicker关联的输入字段的id

在Datepicker Definition中使用
onClose
函数时,我得到当前Datepicker对象的实例
inst
,通过
inst.id
我得到字段名。但这在
parseDate
函数中不起作用。我也不能传递
inst
或使其全局化,因为
onClose
parseDate
之前从未执行过。我尝试了
$(this).attr('id')
,正如建议的那样,但它返回
未定义的
。我的代码(最少的示例):

document.addEventListener(“DOMContentLoaded”,函数(){
$(函数(){
$(“.dp”).datepicker({
showOn:“聚焦”,
showmont第三年:假,
日期格式:“年月日”,
onClose:函数(dateText,inst){
console.log(“字段名:”,inst.id);//works,inst.id为'startDate'。
$(“#”+inst.id+”.form control.dp.hasDatepicker”).css(“颜色”、“红色”);//有效,inst.id为“开始日期”。
}
});
$.datepicker.parseDate=函数(格式、值、设置){
var field=$(this).attr(“id”);//不工作,字段为空。
$(“#”+field+”.form control.dp.hasDatepicker”).css(“颜色”、“红色”);//不工作,字段为空。
};
});
});

{{{('Start')}}

我将使用日期选择器旁边的
输入
事件处理程序执行日期有效性。。。因为您希望进行的日期检查不是datepicker的功能

因此,在
input
上,计算
newdate
值,将
类添加到
input
中,如下所示:

$(文档).ready(函数(){
$(“.dp”).datepicker({
showOn:“聚焦”,
showmont第三年:假,
日期格式:“年月日”
});
$(“.dp”)。关于(“输入”,函数(){
//删除每个新输入上的类
$(此).removeClass(“无效”);
让currentVal=$(this.val();
console.log(currentVal);
//分摊价值
让dateParts=currentVal.split(“.”);
//如果不完整
如果(dateParts.length!==3){
$(此).addClass(“无效”);
返回;
}
//创建要评估的日期对象
设validDate=newdate(`${dateParts[2]}-${dateParts[1]}-${dateParts[0]}00:00:00`);
log(validDate.toString());
//如果日期是“无效”的,并且年份没有4位数字(因为它可能仍然有效……但显然是错误的)
if(validDate.toString()==“无效日期”| | dateParts[2]。长度!==4){
$(此).addClass(“无效”);
}
});
});
.dp无效{
颜色:红色!重要;
}

{{{('Start')}}

Hi,你能让你的代码运行吗?这不是必须的,问题很明显。这对你来说很明显。。。您使用的是哪个
datepicker
插件@根据用户提到的标签,它应该是jQuery ui。。。只是为了帮忙you@LouysPatriceBessettejQuery中是否有多个日期选择器?我正在使用…是的,这个问题很好地说明了,不需要一个可运行的版本。对不起,没有玩具可玩,只有谜语可解。好的,谢谢,我明白了。出于好奇:
$(“.dp”).on(“输入”,function(){
$.datepicker.parseDate=function(格式、值、设置){
?为什么您更喜欢类的颜色而不是我的符号?
$(.dp”).on(“输入”,function()){
是一个事件处理程序。
$.datepicker.parseDate=…
正在将函数分配给
日期选择器
插件…因此它可能会覆盖现有函数并弄乱选择器。--关于类
。无效
,添加或删除它比直接更改输入的样式属性更容易。此外,您不能w检查提交时该类是否存在…;)