我已经设置了一个包含2个pickadates的页面。一个用于开始日期,一个用于结束日期。
我还有许多复选框,标记为:
1天,1个月,1年
用户从第一个pickadate中选择一个日期。他们可以从第二个选择中选择第二个日期。
但我希望提供第二种选择。如果他们检查1天,第2次选择将是1天+第1次补丁的结果。同样适用于1个月和1年的复选框。
无论如何要做到这一点?
我目前的HTML是:
<div class="inputdata">
<label>Timeframe:</label>
<span>
<div class="section__block section__block--scoped">
From:
<fieldset>
<input type="text" id="input_from">
</fieldset>
To:
<fieldset>
<input type="text" id="input_to">
</fieldset>
</div>
</span>
<div class="clear"></div>
<span><input id="x_timeframe" type="date" name="date_timeframe"></span>
<label></label>
<span id="x_timeframe_checkboxes">
<input type="radio" name="a_timeframe" id="radio4" value="d" class="css-checkbox"/>
<label for="radio4" class="css-label">1 Day</label>
<input type="radio" name="a_timeframe" id="radio5" value="w" class="css-checkbox" />
<label for="radio5" class="css-label">1 Week</label>
<input type="radio" name="a_timeframe" id="radio6" value="m" class="css-checkbox" />
<label for="radio6" class="css-label">1 Month</label>
<input type="radio" name="a_timeframe" id="radio8" value="n" class="css-checkbox" />
<label for="radio8" class="css-label">None</label>
</span>
</div>
为了熟悉,js包括:
<script src="/x/js/calendar/pickadate.js-3.4.0/lib/picker.js"></script>
<script src="/x/js/calendar/pickadate.js-3.4.0/lib/picker.date.js"></script>
<script src="/x/js/calendar/pickadate.js-3.4.0/lib/picker.time.js"></script>
<script src="/x/js/calendar/pickadate.js-3.4.0/lib/legacy.js"></script>
<script src="/x/js/calendar/pickadate.js-3.4.0/demo/scripts/main.js"></script>
<script src="/x/js/calendar/pickadate.js-3.4.0/lib/pickadate1454.js"></script>
答案 0 :(得分:0)
你可以只使用JS来做这个技巧,从你的日期字段中获取值并在js日期中转换并添加天或飞蛾。
我总是创建7个函数,在JS中使用日期:addSeconds,addMinutes,addHours,addDays,addWeeks,addMonths,addYears。
您可以在此处查看示例:http://jsfiddle.net/tiagoajacobi/YHA8x/
使用方法:
var now = new Date();
console.log(now.addWeeks(3));
这是功能:
Date.prototype.addSeconds = function(seconds) {
this.setSeconds(this.getSeconds() + seconds);
return this;
};
Date.prototype.addMinutes = function(minutes) {
this.setMinutes(this.getMinutes() + minutes);
return this;
};
Date.prototype.addHours = function(hours) {
this.setHours(this.getHours() + hours);
return this;
};
Date.prototype.addDays = function(days) {
this.setDate(this.getDate() + days);
return this;
};
Date.prototype.addWeeks = function(weeks) {
this.addDays(weeks*7);
return this;
};
Date.prototype.addMonths = function (months) {
var dt = this.getDate();
this.setMonth(this.getMonth() + months);
var currDt = this.getDate();
if (dt !== currDt) {
this.addDays(-currDt);
}
return this;
};
Date.prototype.addYears = function(years) {
var dt = this.getDate();
this.setFullYear(this.getFullYear() + years);
var currDt = this.getDate();
if (dt !== currDt) {
this.addDays(-currDt);
}
return this;
};
答案 1 :(得分:0)
#from_picker +1天
var from_picker = $('#input_from').pickadate(), to_picker = $('#input_from').pickadate();
from_picker.pickadate('picker').on('set', function (event) {
if (event.select) {
to_picker.pickadate('picker').set('select', from_picker.pickadate('picker').get('select').pick + 1 * 24 * 60 * 60 * 1000);
}
});