09-vue.js-フォーム入力バインド
6630 ワード
フォーム入力バインディング
基本的な使い方
チェックボックス
ブール値にバインドされた単一のチェックボックス:
同じ配列にバインドされた複数のチェックボックス:
ラジオボタン
選択ボックス
単一選択:
値バインド
ラジオボタン、チェックボックス、および選択ボックスのオプションの場合、
しかし、Vueインスタンスの動的属性に値をバインドしたい場合があります.この場合、
チェックボックス
ここでの
ラジオボタン
選択ボックスのオプション
修飾子
デフォルトでは、
ユーザーの入力値を自動的に数値タイプに変換するには、
これは、
ユーザーが入力した先頭と末尾の空白文字を自動的にフィルタする場合は、
コンポーネントに
HTMLオリジナルの入力要素タイプは必ずしもニーズを満たすものではありません.幸いなことに、Vueのコンポーネントシステムでは、完全にカスタム動作で多重化可能な入力コンポーネントを作成できます.これらの入力コンポーネントは
基本的な使い方
v-model
命令は、フォーム
、
)では有効ではなく、v-model
を適用して置き換えることができる.チェックボックス
ブール値にバインドされた単一のチェックボックス:
同じ配列にバインドされた複数のチェックボックス:
Checked names: {{ checkedNames }}
new Vue({
el: '#example-3',
data: {
checkedNames: []
}
})
ラジオボタン
Picked: {{ picked }}
new Vue({
el: '#example-4',
data: {
picked: ''
}
})
選択ボックス
単一選択:
Selected: {{ selected }}
new Vue({
el: '...',
data: {
selected: ''
}
})
v-model
式の初期値がオプションに一致しない場合、
Selected: {{ selected }}
new Vue({
el: '#example-6',
data: {
selected: []
}
})
v-for
でレンダリングされたダイナミックオプション:
Selected: {{ selected }}
new Vue({
el: '...',
data: {
selected: 'A',
options: [
{ text: 'One', value: 'A' },
{ text: 'Two', value: 'B' },
{ text: 'Three', value: 'C' }
]
}
})
値バインド
ラジオボタン、チェックボックス、および選択ボックスのオプションの場合、
v-model
でバインドされた値は通常、静的文字列です(チェックボックスの場合はブール値でも構いません):
しかし、Vueインスタンスの動的属性に値をバインドしたい場合があります.この場合、
v-bind
で実装でき、この属性の値は文字列でなくてもよいです.チェックボックス
//
vm.toggle === 'yes'
//
vm.toggle === 'no'
ここでの
true-value
およびfalse-value
のプロパティは、ブラウザがフォームをコミットするときに選択されていないチェックボックスを含まないため、入力コントロールのvalue
のプロパティに影響しません.フォームの2つの値のうちの1つがコミットされることを確認する場合は、「yes」または「no」など)、ラジオボタンに切り替えます.ラジオボタン
//
vm.pick === vm.a
選択ボックスのオプション
//
typeof vm.selected // => 'object'
vm.selected.number // => 123
修飾子
.lazy
デフォルトでは、
v-model
は、input
イベントがトリガーされるたびに、入力ボックスの値をデータと同期させる(上記の入力方式が文字を組み合わせた場合を除く).lazy
修飾子を追加して、change
イベントを同期するように変更できます.
.number
ユーザーの入力値を自動的に数値タイプに変換するには、
v-model
にnumber
修飾子を追加します.
これは、
type="number"
でもHTML入力要素の値が文字列を返すため、通常便利です.この値がparseFloat()
で解析できない場合は、元の値が返されます..trim
ユーザーが入力した先頭と末尾の空白文字を自動的にフィルタする場合は、
v-model
にtrim
修飾子を追加できます.
コンポーネントに
v-model
を使用HTMLオリジナルの入力要素タイプは必ずしもニーズを満たすものではありません.幸いなことに、Vueのコンポーネントシステムでは、完全にカスタム動作で多重化可能な入力コンポーネントを作成できます.これらの入力コンポーネントは
v-model
と一緒に使用することもできます!