流星 - 无法阻止刷新
Meteor - unable to prevent refresh
我有两个不同的模板,它们使用日期选择器将带有日期的子文档插入到文档中。一个有效,一个无效,即使它们看起来相同。项目到期插入工作正常;延迟直到插入只是刷新页面。我正在使用 rajit:bootstrap3-datepicker 包。
HTML(压缩):
<template name="itemsList">
{{#each actionItems}}
{{> item}}
{{/each}}
</template>
<template name="item">
<div class="item">
<div class="item-content">
<div class="mod-table">
<form class="form-inline mod-field">
{{#unless actionItem}}
{{> delayUntil}}
{{/unless}}
</form>
{{#if actionItem}}
{{> actionModtable}}
{{/if}}
</div>
</div>
</div>
</template>
<template name="delayUntil">
<form class="form-inline delay-until">
<div class="mod-field">
<input type="text" class="form-control" name="text" id="delay-until-picker" placeholder="Ignore until..." /><button class="btn btn-default" type="submit">Submit</button>
</div>
</form>
</template>
<template name="actionModtable">
{{> datepicker}}
</template>
<template name="datepicker">
<form class="form-inline item-due">
<div class="mod-field">
<input type="text" class="form-control" name="text" id="due-date-picker" placeholder="Enter due date" /><button class="btn btn-default" type="submit">Submit</button>
</div>
</form>
</template>
JS(压缩):
Template.datepicker.rendered = function() {
$('#due-date-picker').datepicker({
todayBtn: true,
autoclose: true,
todayHighlight: true
});
};
Template.datepicker.events({
'submit .item-due': function(event) {
event.preventDefault();
var itemDue = event.target.text.value;
Items.update(this._id, {$set: {itemDue: itemDue}});
event.target.text.value = "";
return false;
},
});
Template.delayUntil.rendered = function() {
$('#delay-until-picker').datepicker({
todayBtn: true,
autoclose: true,
todayHighlight: true
});
};
Template.delayUntil.events({
'submit .delay-until': function(event) {
event.preventDefault();
var delayUntil = event.target.text.value;
Items.update(this._id, {$set: {delayUntil: delayUntil}});
event.target.text.value = "";
return false;
},
});
所以答案有点傻。我有一个嵌入在表单中的表单(哎呀)。我摆脱了嵌套,世界又恢复正常了。
我有两个不同的模板,它们使用日期选择器将带有日期的子文档插入到文档中。一个有效,一个无效,即使它们看起来相同。项目到期插入工作正常;延迟直到插入只是刷新页面。我正在使用 rajit:bootstrap3-datepicker 包。
HTML(压缩):
<template name="itemsList">
{{#each actionItems}}
{{> item}}
{{/each}}
</template>
<template name="item">
<div class="item">
<div class="item-content">
<div class="mod-table">
<form class="form-inline mod-field">
{{#unless actionItem}}
{{> delayUntil}}
{{/unless}}
</form>
{{#if actionItem}}
{{> actionModtable}}
{{/if}}
</div>
</div>
</div>
</template>
<template name="delayUntil">
<form class="form-inline delay-until">
<div class="mod-field">
<input type="text" class="form-control" name="text" id="delay-until-picker" placeholder="Ignore until..." /><button class="btn btn-default" type="submit">Submit</button>
</div>
</form>
</template>
<template name="actionModtable">
{{> datepicker}}
</template>
<template name="datepicker">
<form class="form-inline item-due">
<div class="mod-field">
<input type="text" class="form-control" name="text" id="due-date-picker" placeholder="Enter due date" /><button class="btn btn-default" type="submit">Submit</button>
</div>
</form>
</template>
JS(压缩):
Template.datepicker.rendered = function() {
$('#due-date-picker').datepicker({
todayBtn: true,
autoclose: true,
todayHighlight: true
});
};
Template.datepicker.events({
'submit .item-due': function(event) {
event.preventDefault();
var itemDue = event.target.text.value;
Items.update(this._id, {$set: {itemDue: itemDue}});
event.target.text.value = "";
return false;
},
});
Template.delayUntil.rendered = function() {
$('#delay-until-picker').datepicker({
todayBtn: true,
autoclose: true,
todayHighlight: true
});
};
Template.delayUntil.events({
'submit .delay-until': function(event) {
event.preventDefault();
var delayUntil = event.target.text.value;
Items.update(this._id, {$set: {delayUntil: delayUntil}});
event.target.text.value = "";
return false;
},
});
所以答案有点傻。我有一个嵌入在表单中的表单(哎呀)。我摆脱了嵌套,世界又恢复正常了。