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

推薦する

Google Recaptcha 認証を使用した Vue 実装例

最近のプロジェクトでは、Google ロボット認証を使用する必要があります。これには VPN が必要...

ブラウザ(IEシリーズ)を判別するための条件付きコメント

<!--[if IE 6]> IE6 のみが認識可能 <![endif]-->...

React でインデックスをキーとして使用することが推奨されないのはなぜですか?

1. 古い仮想DOMと新しい仮想DOMを比較し、まずキーが同じかどうかを確認します。 2. 引き続...

Linux で Apache を使用してファイル サーバーを構築する手順

1. ファイルサーバーについてプロジェクトでは、公開ソフトウェアやデータをプロジェクト チーム メン...

Dockerfile に基づいて Tomcat イメージを構築する方法

Dockerfile は Docker イメージを構築するために使用されるファイルです。コマンドパラ...

権限の問題によりMySQLの設定ファイルmy.cnfを起動できない問題の解決方法

この記事では、権限の問題により MySQL 構成ファイル my.cnf を起動できない場合の関連する...

MySQLデータベースのマスタースレーブ同期構成と読み取り書き込み分離

MySQL マスター スレーブ レプリケーションを使用する利点は次のとおりです。 1. 安定性を向上...

Webフロントエンド開発CSS関連チームコラボレーション

フロントエンド開発部門は成長し、スタッフも増加し、技術も向上しています。 CSSer はフロントエン...

クリックして認証コードと認証を切り替えるJavaScript

この記事では、クリックして切り替える認証コードと認証を実装するためのJavaScriptの具体的なコ...

JSはモバイル端末の画面を1つずつ上下にスライドさせる機能を実装します

この記事では、モバイル端末を一度に1画面ずつ上下にスライドさせるためのJSの具体的なコードを参考まで...

Webフロントエンド開発エンジニアが習得すべきコアスキル

Web フロントエンド開発に含まれる内容は、主に W3C 標準の構造、動作、パフォーマンスです。では...

HTML入力ドロップダウンメニューを実装する方法

コードをコピーコードは次のとおりです。 <html> <ヘッド> <m...

JavaScript カラービューア

この記事では、カラービューアを実装するためのJavaScriptの具体的なコードを参考までに紹介しま...

2つのボールが交差する粘着効果を実現するCSSサンプルコード

これは純粋に CSS のみを使用して作成されたエフェクトです。簡単に言うと、このエフェクトは画像処理...

HTML 再利用テクニック

HTML の再利用は、あまり話題に上らない言葉です。今日は、この問題を次のようにまとめたいと思います...