Javascript 正在更改id为的类参数
我在internet上找到了一个函数来验证我的datepicker函数的日期范围,它使用的是Javascript 正在更改id为的类参数,javascript,jquery,html,datepicker,date-range,Javascript,Jquery,Html,Datepicker,Date Range,我在internet上找到了一个函数来验证我的datepicker函数的日期范围,它使用的是.checkin和.checkout我想为id设置工作(\checkin和\checkout),我知道我必须更改。checkin和。checkout使用\checkin。。。但问题是getMaxDate和getMinDate函数有一些我不知道是什么的js函数,例如parentNode.querySelector和.className..我如何调整我的函数以获得#id $(文档).on('focus',
.checkin
和.checkout
我想为id设置工作(\checkin
和\checkout
),我知道我必须更改。checkin
和。checkout
使用\checkin
。。。但问题是getMaxDate和getMinDate函数有一些我不知道是什么的js函数,例如parentNode.querySelector和.className..我如何调整我的函数以获得#id
$(文档).on('focus','checkin,.checkout',函数(){
返回新皮卡日({
月数:2,
菲尔德:这个,
格式:“DD.MM.YYYY”,
minDate:getMinDate(这个),
第一天:1,
i18n:{
上个月:“Önceki Ay”,
下个月:“Sonraki Ay”,
月份:[“奥卡克”、“乌巴特”、“玛特”、“尼桑”、“五月”、“哈兹兰”、“坦姆兹”、“阿乌斯托斯”、“埃利吕尔”、“埃基姆”、“卡斯穆姆”、“咸海”],
工作日:[“帕扎尔”、“帕扎尔泰西”、“萨尔夫”、“圣安巴”、“佩伦贝”、“库马”、“库马蒂西”],
工作日短:[“和平”、“和平”、“和平”、“安全”、“圣战”、“和平”、“和平”、“和平”、“和平”]
},
maxDate:getMaxDate(此),
onSelect:function(){
e=this.getDate();
}
});
});
函数getMaxDate(元素){
if(element.className=='checkout'&&element.parentNode.querySelector('.checkin').value)
返回新日期(新日期(element.parentNode.querySelector('.checkin').value).getTime()+(15*24*60*60*1000));
其他的
返回新日期(2020年12月31日);
}
函数getMinDate(元素){
if(element.className=='checkout'&&element.parentNode.querySelector('.checkin').value)
返回新日期(element.parentNode.querySelector('.checkin').value);
其他的
返回新日期();
}
.line{
宽度:100%;
高度:10px;
背景:红色;
利润率:10px0;
}
好的,最初的问题是最小的问题。当时,我没有意识到它的另一个主要问题:
- 您正在为字段上的每个
事件创建一个新的pickaday实例。那是行不通的focus
- 我创建了一个基于选择器实例化的函数(来自旧函数)
- 当页面加载时,我在两个输入上运行该函数
- 完成了!一切正常
- 此外,我简化了配置对象、标记和js,以使用ids
$(窗口).on('load',function()){
变量选择器=函数(选择器){
返回新皮卡日({
月数:2,
字段:$(选择器)[0],
格式:“DD.MM.YYYY”,
minDate:getMinDate($(选择器)[0]),
maxDate:getMaxDate($(选择器)[0]),
第一天:1,
i18n:{
上个月:“Önceki Ay”,
下个月:“Sonraki Ay”,
月份:[“奥卡克”、“乌巴特”、“玛特”、“尼桑”、“五月”、“哈兹兰”、“坦姆兹”、“阿乌斯托斯”、“埃利吕尔”、“埃基姆”、“卡斯穆姆”、“咸海”],
工作日:[“帕扎尔”、“帕扎尔泰西”、“萨尔夫”、“圣安巴”、“佩伦贝”、“库马”、“库马蒂西”],
工作日短:[“和平”、“和平”、“和平”、“安全”、“圣战”、“和平”、“和平”、“和平”、“和平”]
},
onSelect:function(){
e=this.getDate();
}
});
},
签出=选择器(“#签出”),
签入=选取器(“#签入”);
});
函数getMaxDate(元素){
if(element.getAttribute('id')='checkin'&&element.value)
返回新日期(新日期(element.value).getTime()+(15*24*60*60*1000));
其他的
返回新日期(2020年12月31日);
}
函数getMinDate(元素){
if(element.getAttribute('id')='checkout'&&element.value)
返回新日期(元素值);
其他的
返回新日期();
}
欢迎来到jQuery
getMaxDate
和getMinDate
function getMaxDate(element) {
if ($(element).hasClass('checkout') && $(element).parent('.checkin').val())
return new Date(new Date($(element).parent('.checkin').val()).getTime() + (15 * 24 * 60 * 60 * 1000));
else
return new Date(2020, 12, 31);
}
function getMinDate(element) {
if ($(element).hasClass('checkout') && $(element).parent('.checkin').val())
return new Date($(element).parent('.checkin').val());
else
return new Date();
}
正在调用的函数中的更改
$(document).on('focus', '.checkin, .checkout', function() {
return new Pikaday({
numberOfMonths: 2,
field: this,
format: "DD.MM.YYYY",
minDate: getMinDate($(this).attr('id')), //Change here
firstDay: 1,
i18n: {
previousMonth: "Önceki Ay",
nextMonth: "Sonraki Ay",
months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"],
weekdays: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"],
weekdaysShort: ["Paz", "Pzt", "Sa", "Ça", "Pe", "Cu", "Cum"]
},
maxDate: getMaxDate($(this).attr('id')), //Change here
onSelect: function() {
e = this.getDate();
}
});
});
谢谢,这是我想要的,我还有一个问题,为什么我们没有改变。querySelector。签入它不会被使用?(我只是想知道:))条件的第二部分检查正确的输入是否有值。当你按下
#checkin
时,你想查看输入。checkin
是否有值,当你按下#checkout
时,你必须检查输入。checkout
是否有值。是的。谢谢它是有效的,但知道它不起作用。我不明白为什么这些函数会从类元素中获取值签入
并将其放入id为签入
的元素中(对于签出
,也是如此)。如果删除部分DOM
它将不再找到元素并停止工作:)。确定。等等,我需要了解发生了什么。