Я пытаюсь реализовать Mesosphere для проверки в моем приложении meteor, но похоже, что Mesosphere не подбирает некоторые из встроенных проверок, которые я перечислил.Meteor.js Validation w/Mesosphere
Я пробовал только одну проверку для форматирования электронной почты и ее требуемую длину. Например:
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);
После отправки, это вход Обязательное поле как ошибка, которая является странным, потому что я сделал что-то типа в поле. В нем не упоминается некорректная длина или формат. Он пропускает сообщение «Неверная длина», и я не могу найти это сообщение в объекте в любом месте.
Так что мой вопрос в том, что я делаю неправильно, чтобы не получить правильное сообщение для неправильного ввода для этого поля формы? Спасибо:)
Также желаем принять рекомендации по другим пакетам проверки. Мезосфера использует функции сервера/клиента 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);
}
Можете ли вы добавить шаблон html на свой вопрос? –
Добавлен шаблон и соответствующий метод. Спасибо Дэвиду. – Colton45
Я потратил около 20 минут на это, работая назад от примера в пакете, и я не понял этого. Он не обновлялся через 5 месяцев, так что это красный флаг. Вы можете взглянуть на [autoform] (https://github.com/aldeed/meteor-autoform). Я не пробовал это, потому что мы написали нашу собственную библиотеку проверки (еще не открытую). –