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 属性を使用する方法をご存知ですか?

推薦する

VMware Workstation での VMware vSphere のセットアップ (グラフィック チュートリアル)

VMware vSphere は、業界をリードする最も信頼性の高い仮想化プラットフォームです。 v...

ウェブサイトのデザインを改善するための役立つ提案を提供します

<br />ウェブサイトを科学的にデザインする: アイトラッキング研究から学ぶ 23 の...

MySQLでSELECT文が実行される仕組み

目次1. マクロの観点からMySQLを分析する2. SQL ステートメントを実行するには、どの程度の...

Linuxブートサービスを起動する2つの方法

目次rc.local メソッドchkconfig メソッドrc.local メソッド1 まず自動的に...

Nginx アクセス ログとエラー ログ パラメータの説明

例: nginx ログには、アクセス ログとエラー ログの 2 つの主な種類があります。アクセス ロ...

IE8互換表示(IE7モード)とスタンドアロンIE7の違いの詳細な説明

1つ。 IE8 互換表示の概要<br />新しいバージョンのブラウザが古い Web サイ...

Centos7.6にTomcat-8.5.39をインストールする方法

Centos7.6 に Tomcat-8.5.39 をインストールする方法は次のとおりです。詳細は次...

CentOS6.8 中国語/英語環境切り替えチュートリアル図

1. はじめに英語に慣れていない人は、システムを英語から中国語に変更したいかもしれません。一方、クラ...

Navicat PremiumはMySQLデータベースを操作します(SQL文を実行します)

1. Navicatの紹介1. Navicat とは何ですか? Navicat は強力な MySQ...

jQueryは要素を追加した後に元のイベントが実行されない問題を解決します

まずエラーコードを見てみましょう。 html: <テーブルボーダー="1"...

Sysbench の MySQL ベンチマーク プロセスの分析

序文1.ベンチマークは、テスト オブジェクトのクラスの特定のパフォーマンス指標の定量的、再現可能、比...

WeChatアプレットは記録機能を実装します

この記事では、WeChatアプレットのレコード機能を実装するための具体的なコードを参考までに紹介しま...

Alipay の新しいホームページのフロントエンドの実践的な概要

もちろん、ページ パフォーマンスの最適化に関する個人的な経験も含まれています。ここでいくつかの点につ...

Linux 構成で MySQL データベースへのリモート接続が失敗する問題の解決方法

今日は、Linux でリモート アクセス用に MySQL データベースを構成する方法について質問があ...

WindowsとLinux間でファイルを転送する方法

WindowsとLinux間のファイル転送(1)WinSCPを使用して、WindowsファイルをLi...