Récupérer les infos d'un template avec input et select
:salut:
Voici un extrait de mon code :
html:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <template id="unitTemplate">
<div class="input-group mb-3">
<span class="input-group-text" id="basic-addon1" style="width:120px"> {{ name }}</span>
<input type="number" class="form-control" :value="val" @input="inputChange">
<select class="form-control" @change="selectChange">
<option v-for="(option, index) in options"
:key="index" :value="option.code">
{{ option.name }}
</option>
</select>
</div>
</template>
...
...
...
...
<vue-unit v-model="units.flow" :options="optionsFlowUnits" name="Flow"></vue-unit> |
js:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| Vue.component('vue-unit', {
props: ['name', 'val', 'options'],
template: '#unitTemplate',
data: {
selected: null
},
methods: {
selectChange(e) {
const selectedCode = e.target.value;
const option = this.options.find((option) => {
return option.code === selectedCode;
});
this.$emit("input", option);
},
inputChange(e) {
const currentValue = e.target.value;
const option = this.options.find((option) => {
return option.value === currentValue;
});
this.$emit("input", option);
alert(currentValue);
},
}
});
...
...
...
let vmRoot = new Vue({
el: '#root',
data: {
units: {
flow: {
name: "m3/h",
code: "1",
val: "",
}
},
optionsFlowUnits: [
{
name: "m3/h",
code: "1",
val: "",
},
{
name: "l/s",
code: "2",
val: "",
},
],
}
}); |
Dans ce template, je souhaite récupérer la valeur du <select> ET celle de <input>. C'est sur ce dernier point que je bloque.
Pourriez-vous m'aider ?
D'avance merci.
J