根据 Jquery.validate() 更改 reactiveVar 会导致 meteor.js
Changing a reactiveVar based on Jquery.validate() results in meteor.js
我在 meteor.js 中使用 Jquery.validate() 包来确保将正确的输入输入到表单中。
提交时,我正在使用 reactiveVar 来更改我的视图输出。如果验证测试通过,我如何只更改 reactiveVar?
看起来像这样:
thissite.js:
Template.inquiry.onCreated( function() {
//toggles 'thank you' on inquiry template
this.showForm = new ReactiveVar( true );
});
Template.inquiry.onRendered(function(){
$('#request-form').validate();
});
inquiry.js
Template.inquiry.helpers({
//toggles 'thank you' on inquiry template
showForm: function () {
return Template.instance().showForm.get();
},
});
Template.inquiry.events({
'click .submit': function(event, template) {
template.showForm.set( false );
Meteor.setTimeout( function() {
template.showForm.set( true );
}, 10000); // Reset after 10 seconds.
},
});
inquiry.html:
<template name="inquiry">
{{#if showForm }}
<form class="request-form" id="request-form" method="post" action="#">
<input type="text" name="name" id="name" value="" placeholder="Name" required />
<input type="email" name="email" id="email" value="" placeholder="Email" required />
<input class="submit" type="submit" value="Send Inquiry" />
{{else}}
Thank You message
{{/if}}
</template>
将您的代码更改为:
'click .submit': function(event, template) {
var $form = template.$('.request-form');
if ($form.valid()) {
template.showForm.set( false );
Meteor.setTimeout( function() {
template.showForm.set( true );
}, 10000); // Reset after 10 seconds.
}
},
Jquery.validate()
有回调选项方法 submitHandler
,你可以在 validate plugin docs.
中阅读它
Template.inquiry.onRendered(function(){
$('#request-form').validate({
submitHandler: function() {...}
});
});
我在 meteor.js 中使用 Jquery.validate() 包来确保将正确的输入输入到表单中。
提交时,我正在使用 reactiveVar 来更改我的视图输出。如果验证测试通过,我如何只更改 reactiveVar?
看起来像这样:
thissite.js:
Template.inquiry.onCreated( function() {
//toggles 'thank you' on inquiry template
this.showForm = new ReactiveVar( true );
});
Template.inquiry.onRendered(function(){
$('#request-form').validate();
});
inquiry.js
Template.inquiry.helpers({
//toggles 'thank you' on inquiry template
showForm: function () {
return Template.instance().showForm.get();
},
});
Template.inquiry.events({
'click .submit': function(event, template) {
template.showForm.set( false );
Meteor.setTimeout( function() {
template.showForm.set( true );
}, 10000); // Reset after 10 seconds.
},
});
inquiry.html:
<template name="inquiry">
{{#if showForm }}
<form class="request-form" id="request-form" method="post" action="#">
<input type="text" name="name" id="name" value="" placeholder="Name" required />
<input type="email" name="email" id="email" value="" placeholder="Email" required />
<input class="submit" type="submit" value="Send Inquiry" />
{{else}}
Thank You message
{{/if}}
</template>
将您的代码更改为:
'click .submit': function(event, template) {
var $form = template.$('.request-form');
if ($form.valid()) {
template.showForm.set( false );
Meteor.setTimeout( function() {
template.showForm.set( true );
}, 10000); // Reset after 10 seconds.
}
},
Jquery.validate()
有回调选项方法 submitHandler
,你可以在 validate plugin docs.
Template.inquiry.onRendered(function(){
$('#request-form').validate({
submitHandler: function() {...}
});
});