Vueでフォームデータを取得する方法

Vueでフォームデータを取得する方法

必要

Vue を使用して次のようにユーザー データを収集します。

ここに画像の説明を挿入

データを取得して送信する

コード実装:

値の値を変数属性にバインドする

v-model.trim = 'username' ; 両端のスペースを削除します

v-model.number = 'age';文字列を数値に変換する

v-model.lazy = 'age' ;すぐには収集されませんが、フォーカスを切り替えた後に収集されます

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <meta http-equiv="X-UA-compatible" content="IE=edge">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <title>フォームデータを取得する</title>
    <script src="/static/js/vue.js"></script>
</head>
<本文>
    <div id="コンテナ">
        <フォームアクション="" @submit.prevent="送信">
            <label for="username">ユーザー名:</label><br>
            <input type="text" class="username" name="username" placeholder="ユーザー名を入力" v-model.lazy="user.username"><br>
            <label for="password">パスワード:</label><br>
            <input type="password" class='password' name="password" placeholder="パスワードを入力" v-model="user.password"><br>
            <label for="age">年齢:</label><br>
            <!-- タイプは数値です。数値のみが許可されます。入力は文字列でもかまいません -->
            <!-- v-model.number、入力文字列を数値に変換します -->
            <input type="number" name="age" v-model.number="user.age"><br>
            <label for="">性別:</label>
            <!-- 異常な入力 -->
            <input type="radio" name="sex" v-model="user.sex" value="female">女性<input type="radio" name="sex" v-model="user.sex" value="male">男性<br>
            <!-- 複数選択 -->
            <label for="">趣味:</label>
            <input type="checkbox" v-model="user.hobby" value="pingpong">卓球<input type="checkbox" v-model="user.hobby" value="basketball">バスケットボール<input type="checkbox" v-model="user.hobby" value="football">サッカー<br>
            <!-- ドロップダウン選択ボックス-->
            <span>都市を選択:</span><br>
            <select name="city" v-model="user.city" id="">
                <option value="">都市を選択</option>
                <option value="zz">鄭州</option>
                <option value="wh">武漢</option>
                <option value="bj">北京</option>
            </選択>
            <br>
            <!-- テキスト ボックス -->
            <label for="">説明:</label><br>
            <テキストエリア名="desc" v-model="user.desc"></テキストエリア>
            <br>
            <!-- プロトコル -->
            <input type="checkbox" name="agree" v-model="user.agree"><a href="http://www.baidu.com">利用規約</a>を読んで同意してください
            <!-- 送信するにはボタンをクリックしてください-->
            <button :style="{display:'block',backgroundColor:'lightblue',}">送信</button>
            <!-- 送信 -->
            <!-- <input type="submit" value="送信"> -->
        </フォーム>
    </div>

    <スクリプト>
        Vue.config.productionTip = false
        新しいVue({
            el: "#コンテナ",
            データ: {
                ユーザー: {
                    ユーザー名: "",
                    パスワード: "",
                    年: ""、
                    性別: "",
                    趣味: []、
                    市: ""、
                    説明: "",
                    同意する: ""、
                }
            },
            メソッド: {
                送信(イベント){
                    console.log("フォームを送信")
                    // フォームでは、パラメータが自動的に送信されます console.log(JSON.stringify(this.user))
                },
            },
        })
    </スクリプト>
</本文>
</html>

テンプレートフィルター

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <meta http-equiv="X-UA-compatible" content="IE=edge">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <title>テンプレート フィルター</title>
    <script src="/static/js/vue.js"></script>
    <script src="/static/js/dayjs.min.js"></script>
</head>
<本文>
    <div id="コンテナ">
        <!-- フィルター -->
        <span>{{ 時間 | 時刻フォーマッタ}}</span><br>
        <!-- パラメータ渡しフィルタの最初のパラメータは常にパイプライン データです -->
        <span>{{ 時間 | timeFormatter("YY-MM-DD hh:mm:ss")}} </span>
        <!--複数のフィルターを直列に接続することもできます-->
    </div>
    <スクリプト>
        Vue.config.productionTip = false
        //グローバルフィルター、すべてのコンポーネントで使用可能 Vue.filter("myFilter", function(value){
        	'グローバルフィルタリング'を返す
        })
        新しいVue({
            el: "#コンテナ",
            データ: {
                time: 1639579694662, //タイムスタンプ、文字列ではない},
			// コンポーネントフィルター内で使用されるローカルフィルター: {
                timeFormatter(時間、フォーマット){
                    // 最初のパラメータ if (format) {
                        dayjs(time).format(format) を返します。
                    }それ以外{
                        dayjs(time).format("YYYY-MM-DD HH:mm:ss") を返します。
                    }
                },
            },
        })
    </スクリプト>
</本文>
</html>

フィルターの使用シナリオ

1. 補間構文で使用される

2. v-bind : 属性 = 'xx|xx'

いくつかの単純な操作を処理すると新しいデータが生成される

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • VueはフォームデータをJSON形式に変換する実装です
  • Vue フォーム データのインタラクティブ送信デモ チュートリアル
  • vueは同じフォームを使用して追加と編集を行い、el-formはフォーム送信後にフォームデータをクリアします。
  • Vue が値を返してフォームを動的に生成し、データを送信する仕組みの詳細な説明
  • Vueはフォームデータの追加、削除、変更機能を実装します
  • Vue の Element-ui フォームを使用してデータと複数の画像をバックエンドに送信する方法
  • Vueのフォームデータ収集方法の詳細

<<:  10秒以内にMySQLデータベースに数百万件のレコードを挿入する実装

>>:  HTML でハイパーリンク タグを使用するチュートリアル

推薦する

CSSをiPhoneのフルスクリーンに適応させる方法

1. メディアクエリ方式 /*iPhone X への適応*/ @media 画面のみ、(デバイス幅:...

MySql テーブル、データベース、シャーディング、パーティショニングの知識の詳細な説明

1. はじめにデータベース内のデータ量が一定レベルに達すると、システムパフォーマンスのボトルネックを...

Nginxサービス500:内部サーバーエラーの原因の1つ

500 (内部サーバー エラー) サーバーでエラーが発生したため、要求を完了できませんでした。 50...

TypeScript マッピング型の詳細

目次1. マップされた型2. マッピング修飾子3. キーの再マッピング4. さらなる探究序文: Ty...

MySQL パーティション フィールド列に別のインデックスを作成する必要がありますか?

序文パーティション フィールドは主キーの一部でなければならないことは誰もが知っています。では、複合主...

MySQL で日付を保存するためのベスト プラクティス ガイド

目次序文時間型を保存するのに文字列を使用しないでくださいMySQL の日付型日時タイムスタンプTIM...

nginx の default_server 定義とマッチングルールの詳細な説明

nginx の default_server ディレクティブは、server_name と一致しない...

MySQL SQL ステートメント分析とクエリ最適化の詳細な説明

パフォーマンスの問題のあるSQL文を取得する方法1. ユーザーからのフィードバックを通じてパフォーマ...

JavaScript の基本オブジェクト

目次1. オブジェクト1.1 オブジェクトとは何ですか? 1.2 なぜオブジェクトが必要なのか? 2...

MySQL 5.7.30 のインストールとアップグレードの問題に関する詳細なチュートリアル

くさびコンピュータにインストールされている MySQL のバージョンが比較的古く、おそらくバージョン...

MySQL 5.7.21 winx64 グリーンバージョンのインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 5.7.21のインストールと設定方法を記録しています。具体的な内容は以下のと...

VMware 15.5 に CentOS7 をインストールするためのグラフィック チュートリアル

1. VMware 15.5で新しい仮想マシンを作成する1. VMware を開き、ホームページで「...

一目でわかる$nextTickの説明

目次1. 機能説明2. 親コンポーネント3. サブコンポーネント NextTick.vue 4なぜ未...