使用Meteor的Match.Integer模式和表单输入

时间:2016-06-30 21:23:58

标签: javascript validation meteor integer

我正在学习如何使用Meteor,目前我正在使用check包来验证用户输入,使用以下教程:http://meteortips.com/first-meteor-tutorial/methods/

我尝试在方法(Match.Integer中)使用addPlayer模式,以确保数据输入特定字段(通过传递给addPlayer方法initialScore参数)是一个有效的整数,在通过控制台调用addPlayer时工作正常。但是,当通过表单输入数据时(提交时调用addPlayer),由于输入的数据属于String类型,因此无法正常工作。

我在考虑在使用Number之前将Match.Integer函数应用于输入的数据,但我认为这是一个坏主意,因为会接受一些非数值。

拥有自己的isInteger功能是个好主意,例如:

function isInteger(n) {
  return n == +n && n == (n|0);
}

(来自https://stackoverflow.com/a/3885844/3806231,但===已替换为==,以允许检查String类型的表单数据

并在应用Number功能之前调用此方法,如上所述?例如:

Meteor.methods({

  'addPlayer': function(initialScore) {
    if (isInteger(initialScore)) {
      check(Number(initialScore), Match.Integer);
    }
  }

});

这样的东西看起来很冗长,而且只是为了验证一个整数。在使用Meteor之前,我只想调用类似isInteger方法的东西,但现在我使用Meteor我想利用可用的软件包来保存自己编写的一些标准验证代码。

有更好的方法吗?

0 个答案:

没有答案