Vue フォーム入力バインディング v-model

Vue フォーム入力バインディング v-model

1.vモデル

v-modelフォームの値と属性の双方向バインディングを実現できることを指定します。つまり、フォーム要素の値が変更されると、属性の値が自動的に更新され、属性の値が更新されると、フォームの値が自動的に更新されます。

2. プロパティとイベントのバインディング

v-model内部的に、異なる入力要素に対して異なる属性を使用し、異なるイベントをスローします。

  • 1. text要素とtextarea要素はvalue属性とinputイベントを使用します。
  • 2. checkboxとラジオボタンはchecked属性とchangeイベントを使用します。
  • 3. selectフィールドは、 valuepropとして受け取り、 changeイベントとして受け取ります。

3. フォーム要素のバインディング

3.1 入力バインディング

<input v-model="message" placeholder="入力してください...">
<p>入力内容は次のとおりです: {{ message }}</p>
 

3.2 テキストエリアバインディング

<span>入力内容は次のとおりです:</span>
<p style="white-space: pre-line;">{{ メッセージ }}</p>
<br>
<textarea v-model="message" placeholder="複数行を入力してください..."></textarea>
 

3.3 チェックボックスバインディング

同じ配列にバインドされた複数のチェックボックス

<div id="アプリ">
  <input type="checkbox" id="バスケットボール" value="バスケットボール" v-model="趣味">
  <label for="basketball">バスケットボール</label>
  <input type="checkbox" id="football" value="フットボール" v-model="趣味">
  <label for="football">サッカー</label>
  <input type="checkbox" id="バレーボール" value="バレーボール" v-model="趣味">
  <label for="volleyball">バレーボール</label>
  <p>{{趣味}}</p>
</div>
<スクリプト>
  constアプリ = 新しいVue({
    el: "#app",
    データ: {
      趣味: []
    }
  })
</スクリプト>

3.4 無線バインディング

<div id="アプリ">
  <input type="radio" id="one" value="One" v-model="picked">
  <label for="one">1つ</label>
  <br>
  <input type="radio" id="two" value="Two" v-model="picked">
  <label for="two">2</label>
  <br>
  <span>選択: {{picked }}}</span>
</div>
新しいVue({
  el: '#app',
  データ: {
    選んだもの: ''
  }
})
 

3.5 バインディングの選択

単一選択:

<div id="#app">
  <v-model を選択="選択済み">
    <option disabled value="">選択してください</option>
    <option>あ</option>
    <option>B</option>
    <option>C</option>
  </選択>
  <span>選択済み: {{ selected }}</span>
</div>
新しいVue({
  el: '...',
  データ: {
    選択: ''
  }
})

複数のオプションを選択する場合は、 multiple属性を追加するだけです

<div id="#app">
  <select v-model="selected" multiple style="width: 50px;">
    <option>あ</option>
    <option>B</option>
    <option>C</option>
  </選択>
  <br>
  <span>選択済み: {{ selected }}</span>
</div>
 

4. 値のバインディング

ラジオボタン、チェックボックス、選択ボックスオプションの場合、 v-modelにバインドされる値は通常、静的な文字列です (チェックボックスの場合はブール値になることもあります)。
しかし、場合によっては、 Vueインスタンスの動的propertyに値をバインドしたい場合があります。これはv-bindで実現でき、このpropertyの値は文字列である必要はありません。

<div id="アプリ">
  <label v-for="趣味の中の趣味">
    <input type="checkbox" :id="趣味" :value="趣味" v-model="test趣味">{{趣味}}
  </ラベル>
  <p>{{テスト趣味}}</p>
</div>
<スクリプト>
  constアプリ = 新しいVue({
    el: "#app",
    データ: {
      趣味: ["バスケットボール"、"サッカー"、"バドミントン"、"卓球"、"テニス"]、
      テスト趣味: []
    }
  })
</スクリプト>

4.1 コードの詳細

  • 1. バックエンドから返されるデータをシミュレートするために、 data内にhobbies配列を作成しました。データは動的です。
  • 2.別の配列testHobbyが定義され、チェックボックスのデータがそれにバインドされます。チェックボックスのデータがチェックされている限り、 testHobbyに追加されます。
  • 3. forループを使用してhobbiesデータのデータを走査します
  • 4. inputタグはid属性とvalue属性にバインドされており、その値は走査されたデータです。Web ページのソース コードを開くと確認できます。
  • 5. v-model inputタグをtestHobbyにバインドします。

最後に、バインディングの効果とバインディング後のWebページのソースコードを確認しましょう。

バインディング後のidとvalueの値は、トラバースされたhobbyであることがわかります

5. 修飾語

5.1 .lazy

デフォルトでは、 v-modelinputイベントがトリガーされた後に入力ボックスの値をデータと同期します。 lazy修飾子を追加すると、Enter キーが押されたとき、またはフォーカスが失われたときにのみ値が変更されるようにすることができます。

<!-- 「input」が押されたときではなく、フォーカスを失ったときや Enter キーを入力したときに値を変更します -->
<input v-model.lazy="msg">
 

5.2 .数値

ユーザーの入力値を自動的に数値型に変換する場合は、 v-modelnumber修飾子を追加します。

<input v-model.number="年齢" type="数値">


type="number"の場合でも、 HTML入力要素の値は常に文字列として返されるため、これは多くの場合便利です。 parseFloat()で値を解析できない場合は、元の値が返されます。

5.3 .トリム

ユーザーが入力した先頭と末尾の空白文字を自動的にフィルタリングしたい場合は、 v-modeltrim修飾子を追加します。

<input v-model.trim="msg">

これで、 Vueフォーム入力バインディングv-modelに関するこの記事は終了です。より関連性の高いVue v-modelコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vueフォームバインディングとコンポーネントの詳細な説明
  • Vue フォームに動的にコンポーネントを追加する実例
  • Vue ループ コンポーネントと検証マルチフォーム検証の例
  • Vueフォームイベントデータバインディングの詳細な説明
  • Vue のフォームとコンポーネントの二重バインディングをご存知ですか?

<<:  Nginxの書き換えモジュールの詳細な説明

>>:  Web ページでフラッシュの wmode 属性を使用する方法をご存知ですか?

推薦する

HTML+CSSを使用してマウスの動きを追跡する

ユーザーがプライバシーを意識するようになり、オンライン トラッキングに対する予防策を強化するにつれて...

サイト全体を灰色にするCSSコードのまとめ

国務院は本日、新型コロナウイルス感染症との闘いで殉教した方々と犠牲者に対し、全国各民族人民の深い哀悼...

HTML のセルパディングとセルスペース属性を図で説明します

セル - 表の内容 セルの余白 (表の余白) (cellpadding) - セルの外側の距離を表し...

Vueの計算プロパティの詳細な説明

1. 計算属性とは何ですか? 簡単に言えば、計算された結果が属性に保存されるもので、キャッシュとして...

Ajax responseText による JSON データの解析のケース スタディ

ajax 処理後にサーバーから返される responseText が JSON データであるという問...

検証コード干渉を実装する js (動的)

この記事の例では、検証コードの動的干渉を実装するためのjsの具体的なコードを共有しています。具体的な...

CSS3を使用してプログレスバー効果を実現し、動的にパーセンテージを追加する

プロジェクト中、プログレスバーを実装するために js の requestAnimationFrame...

mysqladmin を使用して MySQL インスタンスの現在の TPS と QPS を取得する方法

mysqladmin は管理と操作を行う公式の mysql クライアント プログラムです。MySQL...

Vueのレスポンシブシステムの原理の詳細な説明

目次Vueのレスポンシブシステムの基本原則1. Object.definePropertyの使い方を...

あまり多くのコードを書かずに、ハイパーリンクを使ってシンプルで美しいカスタムチェックボックスを実装できます。

今日ふと、HTML でチェックボックスのスタイルを変更できる範囲が限られていることと、チェックボック...

Centos7 の起動プロセスと Systemd での Nginx の起動構成

Centos7 の起動プロセス: 1.post(電源投入時のセルフテスト) 電源投入時のセルフテスト...

Linux のごみ箱メカニズムの実装プロセスと使用方法の詳細な説明

序文: Linux システムでの rm は元に戻せません。コマンドの設計自体に問題はありません。問題...

HTML フォームタグチュートリアル (3): 入力タグ

HTML フォーム タグのチュートリアル。このセクションでは、主に Web ページで INPUT タ...

vue の webpack -v エラー解決の概要

XiaobaiはVueについて学び、次にwebpackについて学び、そしてさまざまなものをインストー...

Bootstrap 3.0 学習ノートボタンスタイル

この記事では主にボタンのスタイルについて説明します。 1. オプション2. サイズ3. 活動状況4....