ElementUIはel-formフォームリセット機能ボタンを実装します

ElementUIはel-formフォームリセット機能ボタンを実装します

ビジネスシナリオ:

el-form を使用する場合、リセット ボタンまたはキャンセル ボタンをクリックするとフォームがリセットされます。

リセット機能ボタン機能を実装するための詳細な手順:

まず最初に、el-form に ref 属性を追加します。

<el-form :inline="true" :model="queryParams" ref="queryForm">

2番目: リセットボタンをクリックして実行されるメソッドで、次の関数コードスニペットを実行します。

 リセット(){
        # リクエストパラメータのエンティティ属性をリセットします this.queryParams = {
          メンバー名: 未定義、
          タイプID: 未定義、
        };
        #フォーム属性値のリセットを指定します。this.$refs["form" ].resetFields();
      }

効果のデモンストレーション:

デフォルトの表示ページ:

検索結果ページ:

効果のリセットページ:

Vue ページのソースコード:

<スタイル>
</スタイル>
<テンプレート>
  <div>
    <el-col :span="19">
      <el-form :inline="true" :model="queryParams" ref="queryForm">
        <el-form-item label="名前">
          <el-input v-model="queryParams.memberName" placeholder="名前"></el-input>
        </el-form-item>
        <el-form-item>
          <div style="text-align:right">
            <!--カスタム searchHandler 関数-->
            <el-button type="primary" @click="searchHandler">クエリ</el-button>
            <!---->
            <el-button type="primary" @click="reset">リセット</el-button>
          </div>
        </el-form-item>
      </el-form>
    </el-col>
    <p style="text-align: left; margin-bottom: 10px;">
      <el-button type="primary" @click="dialogFormAdd = true">追加</el-button>
    </p>
    <el-行>
      <el-テーブル
        :data="テーブルデータ"
        スタイル="幅: 100%">
        <el-テーブル列
          v-for="(データ、インデックス) in tableHeader"
          :key="インデックス"
          :prop="データ.prop"
          :label="データラベル"
          :min-width="データ['min-width']"
          :align="データ.align">
        </el-table-column>
        <el-テーブル列
          prop="メンバーの性別"
          label="性別">
          <template slot-scope="scope">{{ scope.row.memberSex === 1 ? '男' : '女' }}</template>
        </el-table-column>
        <el-テーブル列
          プロパティ="memberStatic"
          label="メンバーステータス">
          <template slot-scope="scope">{{ scope.row.memberStatic === 1 ? '正常' : '異常' }}</template>
        </el-table-column>
        <el-テーブル列
          ラベル="操作"
          最小幅="240">
          <テンプレート スロット スコープ="スコープ">
            <el-button type="primary" size="mini" @click="toEdit(scope)">編集</el-button>
            <el-button type="danger" size="mini" @click="deleteMember(scope)">削除</el-button>
          </テンプレート>
        </el-table-column>
      </el-table>
      <br>
      <el-ページネーション
        @size-change="ハンドルサイズ変更"
        @current-change="現在の変更を処理する"
        :current-page="ページ区切りページインデックス"
        :ページサイズ="[5, 10, 20, 30, 40]"
        :page-size=ページネーション.ページサイズ
        layout="total, sizes, prev, pager, next, jumper"
        :total=ページネーション合計>
      </el-pagination>
    </el-row>
 
    <el-dialog title="生徒を追加" :visible.sync="dialogFormAdd">
      <el-form :model="メンバー">
        <el-form-item label="名前" >
          <el-input v-model="member.memberName" オートコンプリート="オフ"></el-input>
        </el-form-item>
 
      </el-form>
      <div スロット="フッター" クラス="ダイアログ フッター">
        <el-button @click="dialogFormAdd = false">キャンセル</el-button>
        <el-button type="primary" @click="add(student)">OK</el-button>
      </div>
    </el-ダイアログ>
 
    <el-dialog title="生徒の変更" :visible.sync="dialogFormEdit">
      <el-form :model="メンバー">
        <el-form-item label="名前" >
          <el-input v-model="member.memberName" オートコンプリート="オフ"></el-input>
        </el-form-item>
      </el-form>
      <div スロット="フッター" クラス="ダイアログ フッター">
        <el-button @click="dialogFormEdit = false">キャンセル</el-button>
        <el-button type="primary" @click="edit(student)">OK</el-button>
      </div>
    </el-ダイアログ>
 
  </div>
</テンプレート>
 
<スクリプト>
  エクスポートデフォルト{
    名前: 'メンバー',
    データ () {
      戻る {
        テーブルデータ: [],
        dialogFormEdit: false、
        ダイアログフォーム追加:false、
        メンバー: {
          メンバーID: ''、
          メンバー名: ''、
          メンバー電話番号: '',
          メンバー年齢: '',
          タイプ名: ''、
          7月日付: '',
          メンバー静的:''、
          メンバー残高:''、
          メンバーxufei:''
        },
        クエリパラメータ:{
          メンバー名:''、
          タイプID:''
        },
        ページネーション:
          ページインデックス: 1,
          ページサイズ: 10,
          合計: 0,
        },
        テーブルヘッダー: [
          {
            プロパティ: 'メンバーID',
            ラベル: '会員番号'、
            配置: '左'
          },
          {
            プロパティ: 'メンバー名',
            ラベル: '名前',
            配置: '左'
          },
          {
            プロパティ: 'memberPhone',
            ラベル: '電話'、
            配置: '左'
          },
          {
            プロパティ: 'memberAge',
            ラベル: '年齢'、
            配置: '左'
          },
          {
            プロパティ: 'membertypes.typeName',
            ラベル: 'カードタイプ'、
            配置: '左'
          },
          {
            プロパティ: 'nenberDate',
            ラベル: 'エントリー日'、
            配置: '左'
          },
          {
            プロパティ: 'メンバーバランス',
            ラベル: 「会員残高」、
            配置: '左'
          },
          {
            プロパティ: 'memberxufei',
            ラベル: 「有効期限」、
            配置: '左'
          }
        ]
      }
    },
    メソッド: {
      初期化(){
        var 自己 = これ
        this.$axios({
          メソッド:'post',
          url:'/メンバー/クエリ',
          データ:{"ページ番号":this.pagination.pageIndex,"ページサイズ":this.pagination.pageSize,"ktype": 0},
          ヘッダー:{
            'Content-Type':'application/json;charset=utf-8' //ここを変更するだけです}
        }).then(res => {
          コンソールログ(res);
          自己ページネーション合計 = res.data.total;
          セルにデータ行を追加します。
        })
          .catch(関数 (エラー) {
            コンソール.log(エラー)
          })
      },
      ハンドルサイズ変更(val) {
        this.pagination.pageSize = val;
        this.pagination.pageIndex = 1;
        これを初期化します。
      },
      現在の変更を処理する(val) {
        this.pagination.pageIndex = val;
        これを初期化します。
      },
      追加(生徒) {
        this.$axios({
          メソッド:'post',
          url:'/student/insert',
          データ:{'name': 学生の名前、'sex': 学生の性別、'age': 学生の年齢、'college': 学生の大学、'className': 学生のクラス名},
          ヘッダー:{
            'Content-Type':'application/json;charset=utf-8' //ここを変更するだけです}
        }).then(res => {
          this.$message.success('正常に追加されました')
          this.dialogFormAdd = false
          この.init()
        })
          .catch(関数 (エラー) {
            コンソール.log(エラー)
          })
      },
      toEdit (スコープ) {
        this.student.sid = スコープ行.sid
        this.student.name = スコープ行名
        this.student.sex = スコープ行の性別
        this.student.age = スコープ行の年齢
        this.dialogFormEdit = true
      },
      編集(学生){
        var パラメータ = {
          'sid' : 学生.sid,
          '名前' : 学生名、
          '性別' : 学生.性別,
          '年齢' : 学生の年齢
        }
 
        this.$axios({
          メソッド:'post',
          url:'/student/update',
          データ:パラメータ、
          ヘッダー:{
            'Content-Type':'application/json;charset=utf-8' //ここを変更するだけです}
        }).then(res => {
          this.$message.success('変更に成功しました')
          this.dialogFormEdit = false
          この.init()
        }).catch(関数(エラー) {
          コンソール.log(エラー)
        })
      },
      メンバーの削除 (スコープ) {
        デバッガ;
        if (!scope.row.memberId) {
          this.tableData.splice(スコープ.$index, 1)
        } それ以外 {
          this.$confirm('削除するかどうか確認', 'プロンプト', {
            confirmButtonText: '確認'、
            cancelButtonText: 'キャンセル'、
            タイプ: '警告'、
            中心: 真
          })
            .then(() => {
              コンソールログ(スコープ行メンバーID)
              this.$axios.get('/menber/delete/' + scope.row.memberId).then(res => {
                this.$message.success('正常に削除されました')
                この.init()
              })
                .catch(関数 (エラー) {
                  コンソール.log(エラー)
                })
            })
            .catch(() => {
              this.$メッセージ({
                タイプ: '情報'、
                メッセージ: '削除されました'
              })
            })
        }
      },
      検索ハンドラ() {
        var 自己 = これ
        this.$axios({
          メソッド:'post',
          url:'/メンバー/クエリ',
          データ:{"pageNumber":this.pagination.pageIndex,"pageSize":this.pagination.pageSize,"ktype": 0, "hyname":this.queryParams.memberName},
          ヘッダー:{
            'Content-Type':'application/json;charset=utf-8' //ここを変更するだけです}
        }).then(res => {
          コンソールログ(res);
          自己ページネーション合計 = res.data.total;
          セルにデータ行を追加します。
        })
          .catch(関数 (エラー) {
            コンソール.log(エラー)
          })
      },
      リセット(){
        this.queryParams = {
          メンバー名: 未定義、
          タイプID: 未定義、
        };
        this.$refs["form" ].resetFields();
      }
    },
    マウント: 関数 () {
      この.init()
    }
  }
</スクリプト>

ElementUI の el-form フォームリセット機能ボタンの実装に関するこの記事はこれで終わりです。Element el-form フォームリセットに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vue+ElementUIはダイアログボックスを閉じ、検証をクリアし、フォーム操作をクリアします。
  • Vue ElementUI フォームのフォーム検証
  • Vue+elementui ダイアログボックスのキャンセルフォーム検証リセットの例
  • vue+elementui (ダイアログボックスのフォームのリセットの問題)

<<:  Dockerを使用してSpringBootプロジェクトをデプロイする方法

>>:  MySQLからClickHouseに移行する5つの方法

推薦する

React のグローバル状態管理の 3 つの基本メカニズムの調査

目次序文小道具コンテクスト州要約する序文最新のフロントエンド フレームワークはすべて、コンポーネント...

Svelte の Defer Transition を Vue で実装する方法

最近、Rich Harris の <Rethinking Reactivity> ビデオ...

Nginx URL 書き換えメカニズムの原理と使用例

URL 書き換えは、Web サイトの優先ドメインを決定するのに役立ちます。同じリソース ページの複数...

JavaScriptにおけるこのポインティング問題の詳細な説明

序文信じてください。この記事の 7️⃣ ステップを覚えておけば、JS の this リファレンスを完...

読めばわかるVueの8つのヒント

1. v-forでは常に:keyを使用するデータを操作する必要があるときにプログラムを一定かつ予測可...

CSS3 における構造擬似クラスセレクターと擬似要素セレクターの使い方の詳細な説明

構造擬似クラスセレクタの紹介構造擬似クラスセレクターは、いくつかの特殊効果を処理するために使用されま...

Vueは動的コンポーネントを使用してTAB切り替え効果を実現します

目次問題の説明Vueの動的コンポーネントとはアプリケーションシナリオの説明実装手順ステップ 1 (新...

Reactにおけるフックの一般的な使用法

目次1. フックとは何ですか? 2. フックはなぜ現れるのでしょうか? 3. よく使われるフックは何...

Vue はクリックフリップ効果を実現します

参考までに、vueを使用してクリックフリップエフェクトを簡単に実装します。具体的な内容は次のとおりで...

Bootstrap 3.0 学習ノート CSS関連補足

この記事の主な内容は次のとおりです。 1. ブラウザのサポート2. 画像3. レスポンシブツール4....

MySQLトリガーの使用例の詳細

MySQL トリガー構文の詳細: トリガーは、特定のテーブル内のデータが挿入、削除、または更新される...

MySQL でプロファイルを使用する方法のチュートリアル

プロフィールとは何ですか?特定の SQL のパフォーマンスを分析したい場合に使用できます。プロファイ...

Linux入力サブシステムフレームワーク原理の分析

入力サブシステムフレームワークLinux 入力サブシステムは、上から下に向かって、入力サブシステム ...

Windows で Graphviz をインストールして開始する方法のチュートリアル

ダウンロードとインストール環境変数の設定インストール環境変数の設定確認基本的な描画の紹介グラフディグ...

MySQL、Oracle、SQL Server のページングクエリ例の分析

最近、Oracle、MySQL、SQL Server 2005 のデータ ページング クエリについて...