我在表单中使用bootstrap-daterangepicker。我目前获取此选择的价值的方式有效,但我获得价值的方式似乎不是一个好方法。
使用 Session 保存字段选择然后在我完成后取消设置它们似乎很糟糕。我只是想确保我没有遗漏任何东西。
我可以从输入字段中获取值,但我必须解析字符串以提取日期。掺杂这可能是一个令人头疼的维护问题,因为如果我更改 daterangepicker 日期格式,我需要更改解析。
表单域:
<input type="text" name="carpool_eventDates" id="carpool_eventDates" />
JS激活组件:
Template.add_event.rendered = function () {
// initialize add event modal;
$('#addEvent')
.modal();
// initialize the date range picker
$('input[name="carpool_eventDates"]').daterangepicker(
// default date range options
{ranges: {'Last 5 Days': [Date.today().add({ days: -4 }), 'today'],
'Next 5 Days': ['today', Date.today().add({ days: 4 })]}
},
// grab the selection
function(start, end) {
Session.set("showAddEventDialogue_dateRangeStart",start);
Session.set("showAddEventDialogue_dateRangeEnd",end);
});
};
JS保存按钮点击处理程序:
Template.add_event.events({
'click button.save-addEventDialogue': function(e, tmpl) {
// Get the date range selection from the session
var start = Session.get("showAddEventDialogue_dateRangeStart");
var end = Session.get("showAddEventDialogue_dateRangeEnd");
// Do something with the dates
// Clear the dates from the session now that we are done with them
Session.set("showAddEventDialogue_dateRangeStart","");
Session.set("showAddEventDialogue_dateRangeEnd","");
// Close the dialogue
Session.set("showAddEventDialogue", false);
}
});
这是一个好方法吗?或者,还有更好的方法?
谢谢。