我遇到了Router.go()函数的问题。我有一个表格,当它被提交时,我想把它送到测验页面。它目前正在执行此操作,但它会立即将我带回到表单所在的主页模板。我离Meteor只花了几个月的时间,所以我不会怀疑我是否有脑屁。非常感谢任何帮助,谢谢。
测验页面下的所有内容都是名称为测验的模板,其中包含一个h1标签,用于说明测验页面。我可以在将该页面还原到主页之前看到此页面。
这是我的主页js文件:
if (Meteor.isClient) {
Template.home.events({
"click .btn-success": function(event){
var lead_name = $('#name').val();
var lead_email = $('#email').val();
leads.insert({name: lead_name, email: lead_email});
Router.go('quiz');
}
});
Template.home.helpers({
leads: function(){
return leads.find();
}
});
}
以下是home.html文件:
<template name="home">
<div id="home" class="container-fluid">
<div class="row col-md-4 col-md-offset-4">
<h1>Omni Homogenizer Quiz</h1>
<h2>How Well Do You Know Homogenizing?</h2>
<form>
<div class="form-group">
<label for="name">Your Name:</label>
<input type="text" name="name" placeholder="name" class="form-control" id="name">
</div>
<div class="form-group">
<label for="email">Your Email:</label>
<input type="text" name="email" placeholder="email" class="form-control" id="email">
</div>
<button class="btn btn-large btn-success">Play Now to Enter To Win an IPad Mini</button>
</form>
</div>
</div>
这是我的router.js文件:
Router.configure({
layoutTemplate: 'layout'
});
Router.map(function() {
this.route('home', {
path: '/',
template: 'home',
});
this.route('quiz');
});
答案 0 :(得分:2)
尝试在点击中添加event.preventDefault。按钮单击即触发表单提交。
Template.home.events({
"click .btn-success": function(event){
event.preventDefault();
var lead_name = $('#name').val();
var lead_email = $('#email').val();
leads.insert({name: lead_name, email: lead_email});
Router.go('quiz');
}
});