ホームページ > ウェブフロントエンド > jsチュートリアル > Vue の from-validate フォーム検証コード共有

Vue の from-validate フォーム検証コード共有

小云云
リリース: 2018-05-14 16:16:16
オリジナル
1615 人が閲覧しました

この記事では、主に Vue の from-validate フォーム検証のサンプル コードを紹介します。編集者が非常に良いと思ったので、参考として共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

はじめに

フォームデータの検証は元々HTML5を使用して行われていましたが、効果が非常に低く、柔軟性が十分ではなかったため、オンラインプラグインが大きすぎてカスタマイズされたフォーム検証が必要でした。プロジェクトはありませんでした。需要はそれほど多くありません。
それなら自分で書いてみましょう!

知識の準備

vueのカスタム手順

詳細については、公式マニュアルをご覧ください。リンクは次のとおりです: https://vuejs.org/v2/guide/custom-directive.html

一般的にはそれだけです 指定されたフック関数、パラメーター (el、バインディング、vnode) で関数にジャンプするのに役立ちます

  • el: バインドされた dom

  • binding: コマンドのさまざまな属性

  • vnode: Vueのコンパイルによって生成された仮想ノード

Start

1.命令の宣言

なお、バックバインドされた後はパラメータがバインドされないため、クロージャメソッドが使用されます

Vue.directive('validate', {
 // 在指令第一次背绑定上时调用
 bind(el, binding, vnode) {
 }
}
ログイン後にコピー
rreee

2. パラメータを解析する

<form id="red-package" @submit.prevent="submit" v-validate.formData="validate">
 ...
 <button type="submit" class="save">保存</button>
</form>
ログイン後にコピー

3. 入力内容が変更されたときにルールを検証する

Vue.directive(&#39;validate&#39;, {
 // vm对象,就是组件
 const vm = vnode.context;
 // 获得参数绑定的参数,就是规则对象
 const validate = binding.value;
 // 获得数据的key
 const dataKey = Object.keys(binding.modifiers)[0];
});
ログイン後にコピー

5. 検証ルールの例

el.addEventListener(&#39;change&#39;, (e) => {
 try {
  // 事件触发的input标签名
  const changeElName = e.srcElement.name;
  // 如果未设定规则不验证
  if (validate[changeElName]) {
   // 把表单的所有参数传入
   validate[changeElName](vm[dataKey]);
   // 检验成功添加成功的class
   Util.removeClass(e.srcElement, &#39;success&#39;);
  }
 } catch (err) {
  // 抛出异常添加失败的class
  Util.addClass(e.srcElement, &#39;error&#39;);
 }
});
ログイン後にコピー

終わり

何か良い提案があれば指摘していただければ幸いです。

関連する推奨事項:

vue、vue-validatorはフォーム検証機能を実装します

Bootstrapのフォーム検証機能の詳細な説明

フォーム検証

以上がVue の from-validate フォーム検証コード共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート