我試圖製作一個動態選擇菜單,您可以在其中選擇一個客戶,然後過濾該客戶的聯繫人。動態選擇菜單在更改事件後不起作用
當我選擇一個客戶時,它會正確過濾聯繫人,但客戶選擇菜單不顯示任何選擇。
<template name="newLeadForm">
<form id="lead">
<fieldset>
<legend>New Lead</legend>
<br/>
<select id="customer_id" class="span12">
<option id="null" value="null">Select One</option>
{{#each customers}}<option id="{{id}}" value="{{_id}}">{{name}} - {{city}}, {{state}} {{zip}}</option>{{/each}}
</select>
<select id="contact_id" class="span12">
<option id="null" value="null">Select One</option>
{{#each contacts}}<option id="{{id}}" value="{{_id}}">{{first_name}} {{last_name}}</option>{{/each}}
</select>
<input id="submit" type="submit" class="btn">
</fieldset>
</form>
</template>
下面是數據提供給模板
Template.newLeadForm.customers = function() {
return Customers.find();
};
Template.newLeadForm.contacts = function() {
console.log(Session.get("_customer_id"));
return Contacts.find({customer_id: Session.get("_customer_id")});
};
和事件處理程序
Template.insert.events({
'change form#lead #customer_id' : function (event) {
customer = $("form#lead #customer_id").val();
Session.set("_customer_id", $("form#lead #customer_id").val());
},
'submit form#lead' : function (event) {
if (event.type === 'click' || event.type === 'submit') {
event.preventDefault();
var customer_id = $("#customer_id").val();
var contact_id = $("#contact_id").val();
var lead_source_id = $("#lead_source_id").val();
var lead_number = $("#lead_number").val();
if(Leads.insert({id: Leads.find().count() + 1, customer_id: customer_id, contact_id: contact_id})) {
$("#customer_id").val(null);
$("#contact_id").val(null);
Session.set("_customer_id", null);
}
}
}
});
你也可以使用把你的聯繫人在另一個模板'{{>模板}}'和變化那一個,而不是'newLeadForm'不重新呈現 – Akshat 2013-02-20 07:23:32
@Akshat你的答案是什麼工作,如果你張貼它作爲答案我會接受的是答案。 – Moshe 2013-02-20 19:45:59