2

Meteor アプリに検証用にMesosphereを実装しようとしていますが、リストしたネイティブ検証の一部を Mesosphere が認識していないようです。

メールの書式設定について 1 回だけ検証を試みましたが、必要な長さです。例えば:

Mesosphere({
    name: 'signupForm',
    method: 'signupUser',
    fields: {
        email: {
            required: true,
            format: 'email',
            rules: {
                exactLength: 4
            },
            message: 'Wrong length'
        }
    },
    onFailure: function (errors) {
        messages = [];

        messages = _.map(errors, function (val, err) {
            console.log(val.message);
        });
    },
    onSuccess: function (data) {
        alert("Totally worked!")
    }
});

「onFailure」(および onSuccess) コールバックは、フォームの送信時に何かをログに記録しているため、機能しているようです。これにより、フォーム送信イベントでも適切に設定されていると思います。私が正しく理解していれば、フォームオブジェクトをMesosphereに渡してvalidationObjectを作成します。例えば:

var validationObject = Mesosphere.signupForm.validate(accountData);

送信すると、フィールドに何かを入力したため、奇妙なエラーとしてField Requiredがログに記録されます。不適切な長さや形式については言及されていません。「間違った長さ」メッセージをスキップし、オブジェクトのどこにもそのメッセージが見つかりません。

だから私の質問は、そのフォームフィールドの間違った入力に対して適切なメッセージを取得できないために、私が間違っていることは何ですか? ありがとう : )

また、他の検証パッケージに関する推奨事項も喜んで受け入れます。Mesosphere は検証のために Meteor のサーバー/クライアント機能を活用しているため、開始するのに適しているように思えました。

テンプレート:

<template name="signup">
      <form name="signupForm" id="signup-form" class="panel" action="#">
        <div class="form-group">
          <label for="email">Email</label>
          <input type="text" name="email" id="email" class="form-control" />
        </div>

        <div class="form-group">
          <label for="password">Password</label>
          <input type="password" name="password" id="password" class="form-control" />
        </div>

        <div class="form-group">
          <input type="submit" value="Sign Up" id="create-account" class="btn btn-success pull-right">
        </div>
      </form> </template>

対応するファイルでこのメソッドを呼び出します。

  signupUser: function(accountData) {
    var uid = Accounts.createUser(accountData);
  }
4

1 に答える 1