ホームページ ウェブフロントエンド jsチュートリアル 要素 UI のカスタム フォーム検証プラグインの使用

要素 UI のカスタム フォーム検証プラグインの使用

Mar 12, 2018 am 11:29 AM
element プラグイン カスタマイズ

今回はElement UIのカスタマイズフォーム検証プラグインの使用について Element UIのカスタムフォーム検証プラグインを使用する際の注意点を紹介します。

プラグインのメインコード:

//vdt.jsconst VDT = {        messages: {            required: "这是必填字段",            remote: "请修正此字段",            email: "请输入有效的电子邮件地址",            url: "请输入有效的网址",            date: "请输入有效的日期",            dateISO: "请输入有效的日期 (YYYY-MM-DD)",            number: "请输入有效的数字",            digits: "只能输入数字",            creditcard: "请输入有效的信用卡号码",            equalTo: "你的输入不相同",            extension: "请输入有效的后缀",            minlength: "输入字数过短",            maxlength: "输入字数过长",            mphone: "请输入正确的手机号格式",            tphone: "请输入正确的电话格式",            postal: "请输入正确的邮编格式"
        },        required: function (value, param) {            return value != undefined ? (value.toString().length > 0) : false;
        },        email: function (value) {            return /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(value);
        },        url: function (value) {            return /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(value);
        },        date: function (value) {            return !/Invalid|NaN/.test(new Date(value).toString());
        },        dateISO: function (value) {            return /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value);
        },        number: function (value) {            return /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value);
        },        digits: function (value) {            return /^\d+$/.test(value);
        },        isarr: function (o) {            return Object.prototype.toString.call(o) == '[object Array]';
        },        minlength: function (value, param) {            return value.length >= param;
        },        maxlength: function (value, param) {            return value.length <= param;
        },        rangelength: function (value, param) {            var length = $.isArray(value) ? value.length : this.getLength(value);            return (length >= param[0] && length <= param[1]);
        },        min: function (value, param) {            return value >= param;
        },        max: function (value, param) {            return value <= param;
        },        range: function (value, param) {            return (value >= param[0] && value <= param[1]);
        },        equalTo: function (value, param) {            return value === param;
        },        mphone: function (value) {            return /^1[3|4|5|8][0-9]\d{4,8}$/.test(value);
        },        tphone: function (value) {            return /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/.test(value);
        },        postal: function (value) {            return /^[a-zA-Z0-9 ]{3,12}$/g.test(value);
        },        vdata: function (value, config) {//返回正确错误对象 提示 与结果
            for (var fun in config) {                if (typeof this[fun] == "function" && (!(config[fun].param == undefined ? this[fun](value) : this[fun](value, config[fun].param)))) {                    if (typeof config[fun] == "object") {                        return { msg: config[fun].msg ? config[fun].msg : this.messages[fun], result: false };
                    } else {                        return { msg: typeof config[fun] == "string" ? config[fun] : this.messages[fun], result: false };
                    }
                } else if (typeof config[fun] == "function") {                    var tmpr = config[fun](value);                    if (tmpr != "" && tmpr != undefined && tmpr != false) {                        return { msg: tmpr, result: false }
                    }
                }
            }            return { msg: "", result: true };
        }
    };
ログイン後にコピー

使用法 (クリックして効果を確認):

<!DOCTYPE html><html><head>
    <meta charset="UTF-8">
    <!-- 引入样式 -->
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-default/index.css"></head><body>
    <div id="app">
        <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
            <el-form-item label="活动名称" prop="name">
                <el-input v-model="ruleForm.name"></el-input>
            </el-form-item>
            <el-form-item label="活动区域" prop="region">
                <el-select v-model="ruleForm.region" placeholder="请选择活动区域">
                    <el-option label="区域一" value="shanghai"></el-option>
                    <el-option label="区域二" value="beijing"></el-option>
                </el-select>
            </el-form-item>
            <el-form-item label="活动时间" required>
                <el-col :span="11">
                    <el-form-item prop="date1">
                        <el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.date1" style="width: 100%;"></el-date-picker>
                    </el-form-item>
                </el-col>
                <el-col class="line" :span="2">-</el-col>
                <el-col :span="11">
                    <el-form-item prop="date2">
                        <el-time-picker type="fixed-time" placeholder="选择时间" v-model="ruleForm.date2" style="width: 100%;"></el-time-picker>
                    </el-form-item>
                </el-col>
            </el-form-item>
            <el-form-item label="即时配送" prop="delivery">
                <el-switch on-text="" off-text="" v-model="ruleForm.delivery"></el-switch>
            </el-form-item>
            <el-form-item label="活动性质" prop="type">
                <el-checkbox-group v-model="ruleForm.type">
                    <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
                    <el-checkbox label="地推活动" name="type"></el-checkbox>
                    <el-checkbox label="线下主题活动" name="type"></el-checkbox>
                    <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
                </el-checkbox-group>
            </el-form-item>
            <el-form-item label="特殊资源" prop="resource">
                <el-radio-group v-model="ruleForm.resource">
                    <el-radio label="线上品牌商赞助"></el-radio>
                    <el-radio label="线下场地免费"></el-radio>
                </el-radio-group>
            </el-form-item>
            <el-form-item label="活动形式" prop="desc">
                <el-input type="textarea" v-model="ruleForm.desc"></el-input>
            </el-form-item>
            <el-form-item>
                <el-button type="primary" @click="submitForm(&#39;ruleForm&#39;)">立即创建</el-button>
                <el-button @click="resetForm(&#39;ruleForm&#39;)">重置</el-button>
            </el-form-item>
        </el-form>
    </div></body><script src="./vdt.js"></script><script src="https://unpkg.com/vue/dist/vue.js"></script><script src="https://unpkg.com/element-ui/lib/index.js"></script><script>
    var app = new Vue({        el: &#39;#app&#39;,        data: {            ruleForm: {                name: &#39;&#39;,                region: &#39;&#39;,                date1: &#39;&#39;,                date2: &#39;&#39;,                delivery: false,                type: [],                resource: &#39;&#39;,                desc: &#39;&#39;
            },            rules: {                name: (rule, value, callback) => {                    var vdt = VDT.vdata(value, { "required": { msg: "请输入活动名称" }, "maxlength": { param: "5", msg: "最大值不能超过5位" }, "minlength": { param: "3", msg: "最小值不能低于3位" } });                    if (!vdt.result) {
                        callback(new Error(vdt.msg));
                    } else {
                        callback();
                    }
                },                region: (rule, value, callback) => {                    var vdt = VDT.vdata(value, { "required":{}} );                    if (!vdt.result) {
                        callback(new Error(vdt.msg));
                    } else {
                        callback();
                    }
                },                date1:(rule, value, callback) => {                    var vdt = VDT.vdata(value, { "required": { msg: "请选择日期" } });                    if (!vdt.result) {
                        callback(new Error(vdt.msg));
                    } else {
                        callback();
                    }
                },                date2:(rule, value, callback) => {                    var vdt = VDT.vdata(value, { "required": { msg: "请选择日期" } });                    if (!vdt.result) {
                        callback(new Error(vdt.msg));
                    } else {
                        callback();
                    }
                }, 
                type:(rule, value, callback) => {                    var vdt = VDT.vdata(value, { "required": { msg: "请至少选择一个活动性质" } });                    if (!vdt.result) {
                        callback(new Error(vdt.msg));
                    } else {
                        callback();
                    }
                },                resource: (rule, value, callback) => {                    var vdt = VDT.vdata(value, { "required": { msg: "请选择活动资源" } });                    if (!vdt.result) {
                        callback(new Error(vdt.msg));
                    } else {
                        callback();
                    }
                },                desc: (rule, value, callback) => {                    var vdt = VDT.vdata(value, { "required": { msg: "请填写活动形式" } });                    if (!vdt.result) {
                        callback(new Error(vdt.msg));
                    } else {
                        callback();
                    }
                }
            }
        },        methods: {
            submitForm(formName) {                this.$refs[formName].validate((valid) => {                    if (valid) {
                        alert(&#39;验证成功!&#39;);
                    } else {
                        alert(&#39;验证失败!!&#39;);                        return false;
                    }
                });
            },
            resetForm(formName) {                this.$refs[formName].resetFields();
            }
        }
    })</script></html>
ログイン後にコピー


この記事の事例を読んだ後は、この方法を習得したと思います。さらにエキサイティングなコンテンツをご覧になるには、お支払いください。 PHP中国語サイト

その他関連記事にもご注目ください!

関連書籍:

Python3 の QQ メールボックスを介して電子メールを送信する方法

nodejs がシングル サインオンを実装する方法jsonp を介したデモ

以上が要素 UI のカスタム フォーム検証プラグインの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Netflix でカスタム アバターをすばやくセットアップする方法 Netflix でカスタム アバターをすばやくセットアップする方法 Feb 19, 2024 pm 06:33 PM

Netflix のアバターは、ストリーミング ID を視覚的に表現したものです。ユーザーはデフォルトのアバターを超えて自分の個性を表現できます。 Netflix アプリでカスタム プロフィール写真を設定する方法については、この記事を読み続けてください。 Netflix でカスタム アバターをすばやく設定する方法 Netflix には、プロフィール写真を設定する機能が組み込まれていません。ただし、ブラウザに Netflix 拡張機能をインストールすることでこれを行うことができます。まず、Netflix 拡張機能のカスタム プロフィール画像をブラウザにインストールします。 Chrome ストアで購入できます。拡張機能をインストールした後、ブラウザで Netflix を開き、アカウントにログインします。右上隅にあるプロフィールに移動し、をクリックします

PyCharm 初心者ガイド: プラグインのインストールを徹底理解! PyCharm 初心者ガイド: プラグインのインストールを徹底理解! Feb 25, 2024 pm 11:57 PM

PyCharm は、開発者がより効率的にコードを記述できるようにする豊富な機能とツールを提供する、強力で人気のある Python 統合開発環境 (IDE) です。 PyCharm のプラグイン機構は、機能を拡張するための強力なツールであり、さまざまなプラグインをインストールすることで、PyCharm にさまざまな機能やカスタマイズ機能を追加できます。したがって、PyCharm の初心者にとって、プラグインのインストールを理解し、習熟することが重要です。この記事では、PyCharm プラグインの完全なインストールについて詳しく説明します。

Illustrator でのプラグインの読み込みエラー [修正] Illustrator でのプラグインの読み込みエラー [修正] Feb 19, 2024 pm 12:00 PM

Adobe Illustrator を起動すると、プラグインの読み込みエラーに関するメッセージが表示されますか?一部の Illustrator ユーザーは、アプリケーションを開いたときにこのエラーに遭遇しました。メッセージの後には、問題のあるプラグインのリストが続きます。このエラー メッセージは、インストールされているプラ​​グインに問題があることを示していますが、Visual C++ DLL ファイルの破損や環境設定ファイルの破損など、他の理由によって発生する可能性もあります。このエラーが発生した場合は、この記事で問題を解決する方法を説明しますので、以下を読み続けてください。 Illustrator でのプラグインの読み込みエラー Adob​​e Illustrator を起動しようとしたときに「プラグインの読み込みエラー」エラー メッセージが表示された場合は、次の操作を行うことができます。 管理者として

Python でベン図を作成およびカスタマイズするにはどうすればよいですか? Python でベン図を作成およびカスタマイズするにはどうすればよいですか? Sep 14, 2023 pm 02:37 PM

ベン図は、セット間の関係を表すために使用される図です。ベン図を作成するには、matplotlib を使用します。 Matplotlib は、対話型のチャートやグラフを作成するために Python で一般的に使用されるデータ視覚化ライブラリです。インタラクティブな画像やグラフの作成にも使用されます。 Matplotlib は、チャートやグラフをカスタマイズするための多くの関数を提供します。このチュートリアルでは、ベン図をカスタマイズするための 3 つの例を説明します。 Example の中国語訳は次のとおりです: Example これは 2 つのベン図の交差を作成する簡単な例です。最初に、必要なライブラリをインポートし、ベンをインポートしました。次に、データセットを Python セットとして作成し、その後「venn2()」関数を使用して

element.styleの変更方法 element.styleの変更方法 Nov 24, 2023 am 11:15 AM

element.style で要素を変更するメソッド: 1. 要素の背景色を変更する; 2. 要素のフォント サイズを変更する; 3. 要素の境界線のスタイルを変更する; 4. 要素のフォント スタイルを変更する; 5要素の水平方向の配置を変更します。詳細な紹介: 1. 要素の背景色を変更します。構文は "document.getElementById("myElement").style.backgroundColor = "red";"; 2. 要素のフォント サイズなどを変更します。

Chrome プラグイン拡張機能のインストール ディレクトリとは何ですか? Chrome プラグイン拡張機能のインストール ディレクトリとは何ですか? Mar 08, 2024 am 08:55 AM

Chrome プラグイン拡張機能のインストール ディレクトリとは何ですか?通常の状況では、Chrome プラグイン拡張機能のデフォルトのインストール ディレクトリは次のとおりです。 1. WindowsXP での Chrome プラグインのデフォルトのインストール ディレクトリの場所: C:\DocumentsandSettings\username\LocalSettings\ApplicationData\Google\Chrome\UserData\ Default\Extensions2. Windows7 の chrome プラグインのデフォルトのインストール ディレクトリの場所: C:\Users\username\AppData\Local\Google\Chrome\User

Edge ブラウザがこのプラグインをサポートしない理由に対する 3 つの解決策を共有します Edge ブラウザがこのプラグインをサポートしない理由に対する 3 つの解決策を共有します Mar 13, 2024 pm 04:34 PM

ユーザーが Edge ブラウザを使用する場合、より多くのニーズを満たすためにいくつかのプラグインを追加する場合があります。しかし、プラグインを追加すると、このプラグインはサポートされていないと表示されます。この問題を解決するにはどうすればよいですか?今日は編集者が 3 つの解決策を紹介しますので、ぜひ試してみてください。方法 1: 別のブラウザを使用してみてください。方法 2: ブラウザ上の Flash Player が古いか見つからないため、プラグインがサポートされていない可能性があり、公式 Web サイトから最新バージョンをダウンロードできます。方法3:「Ctrl+Shift+Delete」キーを同時に押します。 「データを消去」をクリックしてブラウザを再度開きます。

Eclipseでショートカットキー設定をカスタマイズする方法 Eclipseでショートカットキー設定をカスタマイズする方法 Jan 28, 2024 am 10:01 AM

Eclipse でショートカット キーの設定をカスタマイズするにはどうすればよいですか?開発者にとって、ショートカット キーをマスターすることは、Eclipse でコーディングする際の効率を向上させるための鍵の 1 つです。強力な統合開発環境として、Eclipse は多くのデフォルトのショートカット キーを提供するだけでなく、ユーザーが独自の好みに応じてショートカット キーをカスタマイズすることもできます。この記事では、Eclipseでショートカットキーの設定をカスタマイズする方法と具体的なコード例を紹介します。 Eclipseを開く まず、Eclipseを開いて次のように入力します。

See all articles