如何在Meteor中重置窗体

如何在Meteor中重置窗体,meteor,Meteor,我需要重置一个弹出窗体,其中的值都是从会话变量中填充的: Template.customerinfo.name = -> Session.get('activeCustomer').name 现在我正在手动执行此操作: Template.customerinfo.events 'click #cancelButton': -> Client.getById('inputName').val(Session.get('activeCustomer').name) Met

我需要重置一个弹出窗体,其中的值都是从会话变量中填充的:

Template.customerinfo.name = -> Session.get('activeCustomer').name
现在我正在手动执行此操作:

Template.customerinfo.events
  'click #cancelButton': ->
    Client.getById('inputName').val(Session.get('activeCustomer').name)
Meteor.render
会更加混乱,因为我必须提取当前表单/模板,使用Meteor.render创建一个新表单/模板,然后将其插入DOM


有没有办法告诉meteor重置表单或模板并从其源中提取值?

只要有一个模板(或变量)将呈现的条件,然后更改该条件即可。例如,在HTML中有:

    <Template name="customerinfo">
    {{#if somevariable}}
      {{name}}
    {{/if}}
    </template>
这些助手:

    Template.customerinfo.name = function(){
       return Session.get('activeCustomer').name;
    }

    Template.customerinfo.somevariable = function(){
       return somevariable
    }
由于模板仅在somevariable为true时才会呈现,因此当需要重新呈现表单时,请执行函数resetForm():


在您的Handlebar模板中,即在执行Meteor.call()或集合插入/更新后,执行此jQuery调用。它返回DOM中的第一个表单,然后调用DOM reset()

在HTML中:

<form class="form-horizontal add-post-form" role="form">
   // Your form HTML.
</form>

//你的表单是HTML。
另见:

我想您可以添加一个隐藏重置按钮来重置表单

css

车把

<template name="btn-reset-hide">

    <input type="reset" class="btn-reset-hide">

</template>

{{> btn-reset-hide}}

调用resetForm()

只需使用
event.target.name.value=“”

旁注:不要使用Meteor.render
。当新的Meteor UI系统发布后,这个API将在几周内失效。它不在coffeescript中,但总是有js2coffee.org=)它不起作用。我尝试使用somevariable作为普通js变量和会话变量。如果使用:| | Template.customerinfo.name=function(){return session.get('activeCustomer').name;}| | |,当使用| | session.set('activeCustomer',adiffertname')| |时会发生什么?这会导致模板刷新吗?理论上应该是因为
$('.add-post-form')[0].reset();
<form class="form-horizontal add-post-form" role="form">
   // Your form HTML.
</form>
.hide { display: none; }
<template name="btn-reset-hide">

    <input type="reset" class="btn-reset-hide">

</template>

{{> btn-reset-hide}}
resetForm = (tmpl) ->
    if tmpl?
        ($ tmpl.find '.btn-reset-hide').trigger 'click'
    else
        ($ '.btn-reset-hide').trigger 'click'