如何在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'