Ich versuche, die Werte einiger dynamisch generierter Auswahl zu erhalten, die ich zu einem Formular hinzufüge. Ich denke, ich mache es richtig, aber es gibt nur den ersten Auswahlwert zurück.Meteor Dynamisch erzeugte Werte
Formularvorlage:
<form id="Dynamic" class="add-clients col s12 m10 offset-m1 white z-depth-1">
<div class="row">
<h4>Add a new company with company contacts.</h4>
<hr>
</div>
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix">business</i>
<input id="company_name" name="company_name" type="text" class="validate">
<label for="company_name">Company Name</label>
</div>
</div>
<div class="input-placeholder row">
<!--append contact select-->
</div>
<div class="row">
<div class="add-contacts input-field col s12">
{{> ContactSelect}}
</div>
</div>
<div class="row">
<div class="input-field col s12">
<button class="btn-large waves-effect waves-light" href="#" id="s">Save Company</button>
</div>
</div>
</form>
Die dynamische Vorlage auswählen:
Template.ContactSelect.events({
'click .add-select'(event){
$(".first-select .contact-selectBox").clone().appendTo(".incoming-input").after('<a href="#" class="btn">Remove</a>');
},
});
<template name="ContactSelect">
<div class="first-select input-field col s12">
<select class="contact-selectBox browser-default">
<option value="" disabled selected>Choose your option</option>
{{#each allContacts}}
<option value="{{_id}}">{{fullname}}</option>
{{/each}}
</select>
</div>
<div class="incoming-input input-field col s12">
</div>
<div class="multiply-select col s12">
<a class="add-select btn-floating btn waves-effect waves-light red"><i class="material-icons">add</i></a>
</div>
</template>
Und schließlich einreichen Ereignis für die Form:
Template.ClientAddNew.events({
'submit .add-clients'(event, template){
event.preventDefault();
var selection = {};
template.$("option:selected").each(function(index){
selection["box"+index] = template.$("option:selected").attr("value");
});
console.log(selection);
}
});
Was ich seltsam finde ist, dass, wenn ich .attr("value")
mit .text()
ersetzen die beiden ausgewählten Optionen hinzufügt, aber es concatinates sie zusammen.