如何使用Autoform以时间格式显示数字?

时间:2015-11-11 17:57:52

标签: meteor time meteor-autoform

我目前正在使用Autoform在Meteor中创建一个表单,并尝试让用户输入他们想要用于事件的时间限制。我当前的架构看起来像下面的示例,但我只是想知道如何更改timeLimit对象,以便它不会只显示格式' 0'中的数字,它将返回格式' 00 :00'并让我能够在几秒钟内记录信息。

EventSchema = new SimpleSchema({
  name: {
    type: String,
    label: "Event Name"
  },
  timeLimit: {
    type: Number,
    label: "Time Limit"
  },
  rounds: {
    type: Number,
    label: "Rounds"
  }
});

1 个答案:

答案 0 :(得分:0)

一种方法是为用户输入一个字段,这将是" mm:ss"中的一个字符串。格式。并计算另一个字段并显示秒数。

因此,在此示例中,您将在表单上显示timeLimitString字段,因此用户可以输入" mm:ss"格式。并使用timeLimit字段上的autoValue函数来计算秒数(此示例使用moment.js库来计算秒数);

EventSchema = new SimpleSchema({
  name: {
    type: String,
    label: "Event Name"
  },
  timeLimitString: {
    type: String,
    regEx: // define regex here for "mm:ss" format
  },
  timeLimit: {
    type: Number,
    label: "Time Limit",
    autoValue: function() {
       var string = this.field("timeLimitString");
       if (string.isSet) {
           var time = moment(string.value, "mm:ss");
           var seconds = time.minutes()*60 + time.seconds();
           return seconds;
        }
    }
  },
  rounds: {
    type: Number,
    label: "Rounds"
  }
});