Part 1 / Bindings / Numeric inputs
In the DOM, everything is a string. That's unhelpful when you're dealing with numeric inputs — type="number"
and type="range"
— as it means you have to remember to coerce input.value
before using it.
With bind:value
, Svelte takes care of it for you:
<input type=number bind:value={a} min=0 max=10>
<input type=range bind:value={a} min=0 max=10>
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
<script>
let a = 1;
let b = 2;
</script>
<label>
<input
type="number"
value={a}
min="0"
max="10"
/>
<input
type="range"
value={a}
min="0"
max="10"
/>
</label>
<label>
<input
type="number"
value={b}
min="0"
max="10"
/>
<input
type="range"
value={b}
min="0"
max="10"
/>
</label>
<p>{a} + {b} = {a + b}</p>
<style>
label {
display: flex;
}
input,
p {
margin: 6px;
}
</style>
initialising