Vue でフォーム入力の検証と送信を処理する方法

WBOY
リリース: 2023-10-15 08:48:18
オリジナル
1927 人が閲覧しました

Vue でフォーム入力の検証と送信を処理する方法

Vue でのフォーム入力の検証と送信
フロントエンド開発では、フォーム入力の検証と送信は非常に重要なリンクです。人気のあるフロントエンド フレームワークとして、Vue はフォーム入力の検証と送信を処理する便利な方法をいくつか提供します。この記事では、Vue でフォーム入力を検証および送信する方法と、いくつかのコード例を紹介します。

フォーム入力の検証
Vue では、組み込みバリデータを使用してフォーム入力を検証できます。 Vue には、テンプレート内で直接使用できる「検証命令」と呼ばれるメソッドが用意されています。

まず、HTML の

タグ内に Vue と Element UI のライブラリ ファイルを導入します (Element UI は Vue.js をベースにしたデスクトップ コンポーネント ライブラリのセットです):
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
ログイン後にコピー

次に、HTML の タグ内に単純なフォームを定義します:

<body>
  <div id="app">
    <el-form ref="form" :rules="rules" label-width="100px" style="max-width: 450px; margin: 50px auto;">
      <el-form-item label="用户名" prop="username">
        <el-input v-model="form.username"></el-input>
      </el-form-item>
      <el-form-item label="密码" prop="password">
        <el-input type="password" v-model="form.password"></el-input>
      </el-form-item>
      <el-button type="primary" @click="submitForm('form')">提交</el-button>
    </el-form>
  </div>
  
  <script>
    new Vue({
      el: '#app',
      data() {
        return {
          form: {
            username: '',
            password: '',
          },
          rules: {
            username: [
              { required: true, message: '用户名不能为空', trigger: 'blur' },
              { min: 3, max: 20, message: '用户名长度在 3 到 20 个字符', trigger: 'blur' },
            ],
            password: [
              { required: true, message: '密码不能为空', trigger: 'blur' },
              { min: 6, max: 20, message: '密码长度在 6 到 20 个字符', trigger: 'blur' },
            ],
          },
        };
      },
      methods: {
        submitForm(formName) {
          this.$refs[formName].validate((valid) => {
            if (valid) {
              alert('表单校验通过,可以提交');
            } else {
              console.log('表单校验失败');
              return false;
            }
          });
        },
      },
    });
  </script>
</body>
ログイン後にコピー

上記のコードでは、v-model ディレクティブを通じてフォームの入力値をバインドし、v-model ディレクティブを通じてフォームの入力値をバインドします。 :rules 属性 検証ルール。このうち、required:trueは必須項目を示し、minmaxは最小長と最大長を表します。

submitForm メソッドでは、フォーム検証のために $refs[formName].validate メソッドを呼び出します。検証が成功すると、プロンプト ボックスがポップアップ表示されます。

フォームの送信
Vue では、Ajax リクエストを送信するか、バックエンド API を呼び出すことでフォームを送信できます。 Ajax リクエストを送信するためのサンプル コードを次に示します。

<script>
  new Vue({
    el: '#app',
    data() {
      return {
        form: {
          username: '',
          password: '',
        },
        rules: {
          username: [
            { required: true, message: '用户名不能为空', trigger: 'blur' },
            { min: 3, max: 20, message: '用户名长度在 3 到 20 个字符', trigger: 'blur' },
          ],
          password: [
            { required: true, message: '密码不能为空', trigger: 'blur' },
            { min: 6, max: 20, message: '密码长度在 6 到 20 个字符', trigger: 'blur' },
          ],
        },
      };
    },
    methods: {
      submitForm(formName) {
        this.$refs[formName].validate((valid) => {
          if (valid) {
            // 表单校验通过,发送Ajax请求
            this.$http.post('/api/submit', this.form).then((response) => {
              console.log('提交成功');
            }).catch((error) => {
              console.log('提交失败');
            });
          } else {
            console.log('表单校验失败');
            return false;
          }
        });
      },
    },
  });
</script>
ログイン後にコピー

上記のコードでは、Vue が提供する $http オブジェクトを使用して Ajax リクエストを送信し、フォーム データをbackend/api/submit インターフェイス。

概要
上記の例を通じて、Vue でのフォーム入力の検証と送信の処理が非常に簡単であることがわかります。検証ルールを設定し、検証メソッドを呼び出し、検証結果に基づいて対応する処理を実行するだけです。同時に、Ajax リクエストを送信したり、バックエンド API を呼び出したりして、フォーム データを送信することもできます。

もちろん、上記のコードは単なる例であり、実際のニーズに応じて拡張および変更できます。この記事が、Vue でのフォーム入力の検証と送信の処理に役立つことを願っています。

以上がVue でフォーム入力の検証と送信を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!