Meteor 如何获取特殊组件(引导daterangepicker)的表单值?

Meteor 如何获取特殊组件(引导daterangepicker)的表单值?,meteor,Meteor,我在一个表单中使用。我目前获取此选择值的方法很有效,但获取值的方法似乎不是一个好方法 使用会话保存字段选择,然后在完成后取消设置它们,这似乎不好。我只是想确定我没有错过什么 我可以从输入字段中获取值,但我必须解析字符串以提取日期。这可能是维护方面的一个难题,因为如果我更改daterangepicker日期格式,我需要更改解析 表单字段: <input type="text" name="carpool_eventDates" id="carpool_eventDates" />

我在一个表单中使用。我目前获取此选择值的方法很有效,但获取值的方法似乎不是一个好方法

使用会话保存字段选择,然后在完成后取消设置它们,这似乎不好。我只是想确定我没有错过什么

我可以从输入字段中获取值,但我必须解析字符串以提取日期。这可能是维护方面的一个难题,因为如果我更改daterangepicker日期格式,我需要更改解析

表单字段:

    <input type="text" name="carpool_eventDates" id="carpool_eventDates" />
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);
        }             
      });
这是一个好方法吗?还是有更好的办法

谢谢。

您可以使用jQuery将daterangepicker数据存储在原始的
元素上,而不是在会话中。因此,您可以重写“抓取选择”代码,如下所示:

// grab the selection
function(start, end) {
  $('input[name="carpool_eventDates"]')
    .data("showAddEventDialogue_dateRangeStart", start)
    .data("showAddEventDialogue_dateRangeEnd", end);
});
然后从元素而不是从会话检索数据:

// Get the date range selection from the element
var start = $('input[name="carpool_eventDates"]').data("showAddEventDialogue_dateRangeStart");
var end = $('input[name="carpool_eventDates"]').data("showAddEventDialogue_dateRangeEnd");

假设在关闭模式并销毁模板时,
被丢弃,那么就没有会话或其他变量需要清理。

这正是我想要的。谢谢它工作得很好。
// Get the date range selection from the element
var start = $('input[name="carpool_eventDates"]').data("showAddEventDialogue_dateRangeStart");
var end = $('input[name="carpool_eventDates"]').data("showAddEventDialogue_dateRangeEnd");