Voici un extrait de mon code :
html:
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
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:
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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: "", }, ], } });
Pourriez-vous m'aider ?
D'avance merci.
J
Partager