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);
}