Javascript 流星:清理田野
我正在使用Meteor上的语义用户界面。我的代码中有一些类似于下拉字段的模块。一切都在进行中以获取数据,但我想清除下拉列表,就像我可以清除文本字段一样,但它不起作用 有人能帮我吗 这是我的密码:Javascript 流星:清理田野,javascript,meteor,meteor-blaze,semantic-ui,meteor-helper,Javascript,Meteor,Meteor Blaze,Semantic Ui,Meteor Helper,我正在使用Meteor上的语义用户界面。我的代码中有一些类似于下拉字段的模块。一切都在进行中以获取数据,但我想清除下拉列表,就像我可以清除文本字段一样,但它不起作用 有人能帮我吗 这是我的密码: Meteor.subscribe('brands'); Template.deliveryForm.helpers({ brands: function() { return Brands.find({}, {fields: {'brand':1}}); } }); T
Meteor.subscribe('brands');
Template.deliveryForm.helpers({
brands: function() {
return Brands.find({}, {fields: {'brand':1}});
}
});
Template.deliveryForm.events({
'submit .new-delivery': function(event) {
event.preventDefault();
var date = event.target.date.value;
var brand = event.target.brand.value;
var description = event.target.description.value;
Deliveries.insert({
date: date,
brand: brand,
description: description,
createdAt: new Date()
});
event.target.date.value = "";
event.target.brand.value = "";
event.target.description.value = "";
}
});
Template.deliveryForm.rendered = function(){
$('select.dropdown').dropdown({ });
}
谢谢你的帮助
以下是模板代码:
<template name="deliveryForm">
<form class="ui form new-delivery">
<div class="four inline fields">
<div class="wide three field">
<label>Date</label>
<input type="date" name="date" placeholder="Date">
</div>
<div class="wide four field">
<label>Marque</label>
<select class="ui search dropdown" name="brand">
<option value="">Selectionner Marque</option>
{{#each brands}}
<option value="{{brand}}">{{brand}}</option>
{{/each}}
</select>
</div>
<div class="wide eight field">
<label>Description</label>
<input type="text" name="description" placeholder="Description">
</div>
<button class="ui button icon right labeled teal" type="submit" name="submit"><i class="right checkmark icon"></i>Valider</button>
</div>
</form>
</template>
日期
品牌
Selectionner品牌
{{{每个品牌}
{{brand}}
{{/每个}}
描述
瓦利德
从中,您可以通过以下方式清除下拉列表:
Template.deliveryForm.rendered = function(){
$('select.dropdown').dropdown('clear');
}
希望这能奏效:)
编辑
您的代码和我的示例需要包装在Meteor.defer
(一些参考文献,)中,因为DOM在执行rendered
回调期间未准备就绪
Template.deliveryForm.rendered = function(){
Meteor.defer(function() {
$('select.dropdown').dropdown('clear');
});
}
希望现在就可以了:)我不确定你的函数用例要做什么,但我认为提交表单后,你只需要重置下拉列表(选择第一个选项)。 请尝试以下代码:
Template.deliveryForm.events({
'submit .new-delivery': function(event) {
event.preventDefault();
var date = event.target.date.value;
var brand = event.target.brand.value;
var description = event.target.description.value;
Deliveries.insert({
date: date,
brand: brand,
description: description,
createdAt: new Date()
});
event.target.date.value = "";
//Below code will restore defaults of your dropdown
$('.dropdown').dropdown('restore defaults');
event.target.description.value = "";
}
});
好吧,伙计们,这似乎有效,但你的两个答案。。。。这是代码,但无法解释为什么
Meteor.subscribe('brands');
Template.deliveryForm.helpers({
brands: function() {
return Brands.find({}, {fields: {'brand':1}});
}
});
Template.deliveryForm.events({
'submit .new-delivery': function(event) {
event.preventDefault();
var date = event.target.date.value;
var brand = event.target.brand.value;
var description = event.target.description.value;
Deliveries.insert({
date: date,
brand: brand,
description: description,
createdAt: new Date()
});
event.target.date.value = "";
$('.dropdown').dropdown('restore defaults');
event.target.description.value = "";
}
});
Template.deliveryForm.rendered = function(){
Meteor.defer(function() {
$('.dropdown').dropdown('restore defaults');
});
}
再次感谢:)你能提供一个吗?你能添加你的模板代码吗?我刚刚添加了模板代码@guissoumassam谢谢:)我会尝试做一个Meteopad,这里是一个只有代码的Meteopad,这是github:,thanksThanks@Carlos Rodrigues,但它不起作用,已经尝试了,而不是我的$('select.dropdown')).下拉列表();…:/谢谢@GUISSOUMAIssam,我以前尝试过类似的方法,并在事件函数中重试了您的代码,但都不起作用:(