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 でハイパーリンク タグを使用するチュートリアル

推薦する

vuex での mapState の考え方の応用

目次1. マップ方式2. 応用背景:需要開発プロセス中に、一部のインターフェースは、ページに表示する...

CSS と JavaScript を使用して管理ダッシュボードのレイアウトを構築するためのサンプル コード

あなたが作成するものこの新しいチュートリアルでは、CSS と JavaScript を使用して、レス...

Nodeイベントループの包括的な理解

目次ノードイベントループイベントループ図メインスレッドイベントループタイマーキューの仕組み投票キュー...

...

ビジュアルデザインとインタラクションデザインについて

<br />製品設計プロセス全体において、ビジュアルデザインとインタラクションデザインの...

VMware esxi6.5 のインストールと使用の詳細な手順

目次導入建築ESXIの利点vSphere とは何ですか? 2. 仮想マシンの利点3. 仮想マシンを使...

GolangでMySQLデータベースのバックアップを実装する方法

背景Navicat は、最高の MySQL 視覚化ツールです。ただし、ビューのインポートとエクスポー...

Vueはルールを使用してフォームフィールドの検証を実装します

Vue でフォーム フィールドを記述および検証する方法は多数あります。このブログでは、より一般的に使...

ストアド プロシージャでエラー状態をトリガーする mysql ストアド プロシージャの分析例 (SIGNAL および RESIGNAL ステートメント)

この記事では、例を使用して、MySQL がストアド プロシージャで引き起こすエラー状態 (SIGNA...

MySQL の日付型の単一行関数コードの詳細な説明

MySQL の日付型単一行関数: CURDATE()またはCURRENT_DATE()は現在の日付を...

MySQLデータベースに画像を保存するいくつかの方法

通常、ユーザーがアップロードした写真はデータベースに保存する必要があります。一般的に、解決策は 2 ...

MySQL データベース 8 - データベース内の関数の適用の詳細な説明

データベースの組み込み関数の使用この記事では、主に日付関数、文字列関数、数学関数など、データベースの...

OneProxy に基づいて MySQL の読み取り/書き込み分離と負荷分散を実装する

導入パート1: 冒頭に書いたOneProxy は、民間ソフトウェアによって完全に独立して開発された分...

フロントエンドページのスライド検証を実装するための JavaScript + HTML

この記事では、フロントエンドページのスライド検証を実装するためのJavaScript + HTMLの...

nginx の 2 つのモジュールの proxy_pass の違い

1. 1.ngx_stream_proxy_moduleモジュールのproxy_passディレクティ...