Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 流星:清理田野_Javascript_Meteor_Meteor Blaze_Semantic Ui_Meteor Helper - Fatal编程技术网

Javascript 流星:清理田野

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上的语义用户界面。我的代码中有一些类似于下拉字段的模块。一切都在进行中以获取数据,但我想清除下拉列表,就像我可以清除文本字段一样,但它不起作用

有人能帮我吗

这是我的密码:

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,我以前尝试过类似的方法,并在事件函数中重试了您的代码,但都不起作用:(