要素UI //フォームの使用法(フォームの検証)

フォームの基本的な使用法

el-formコンテナー、モデルを介してデータをバインドします
el-form-itemコンテナー、ラベルを介してラベルを
バインドしますフォームコンポーネントは、v-modelを介してモデル内のデータをバインドします

<template>
  <div id="app">
    <el-form inline :model="data">
      <el-form-item label="审批人">
        <el-input v-model="data.user" placeholder="审批人"></el-input>
      </el-form-item>
      <el-form-item label="活动区域">
        <el-select v-model="data.region" placeholder="活动区域">
          <el-option label="区域一" value="shanghai"></el-option>
          <el-option label="区域二" value="beijing"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="onSubmit">查询</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
    
    
  name: 'app',
  data() {
    
    
    return {
    
    
      data: {
    
    
        user: 'sam',
        region: '区域二'
      }
    }
  },
  methods: {
    
    
    onSubmit() {
    
    
      console.log(this.data)
    }
  }
}
</script>

フォーム検証の基本的な使用法

Formコンポーネントは、合意された検証ルールをrulesプロパティを介して渡し、Form-itemのpropプロパティを検証が必要なフィールド名に設定する限り、フォーム検証の機能を提供します。

1.el-formまたはel-form-itemにバインドできる検証ルールを定義します

data() {
    
    
  const userValidator = (rule, value, callback) => {
    
    
    if (value.length > 3) {
    
    
      callback()
    } else {
    
    
      callback(new Error('用户名长度必须大于3'))
    }
  }
  return {
    
    
    data: {
    
    
      user: 'sam',
      region: '区域二'
    },
    rules: {
    
    
      user: [
        {
    
     required: true, trigger: 'change', message: '用户名必须录入' },
        {
    
     validator: userValidator, trigger: 'change' }
      ]
    }
  }
}

2.el-form-itemのprop属性を指定します

<el-form-item label="审批人" prop="user">
  <el-input v-model="data.user" placeholder="审批人" clearable></el-input>
</el-form-item>

フォーム検証関連の属性

hide-required-asterisk必要なロゴを
インラインメッセージで非表示にして、メッセージが1行に表示されているかどうかを確認します

フォーム検証の高度な使用法

使用法1:検証ルールを動的に変更する

1.ルールには検証ルールが1つだけ含まれています

{
    
    
  rules: {
    
    
      user: [
        {
    
     required: true, trigger: 'change', message: '用户名必须录入' },
      ]
  }
}

2.ルールを動的に追加します

addRule() {
    
    
    const userValidator = (rule, value, callback) => {
    
    
      if (value.length > 3) {
    
    
        this.inputError = ''
        this.inputValidateStatus = ''
        callback()
      } else {
    
    
        callback(new Error('用户名长度必须大于3'))
      }
    }
    const newRule = [
      ...this.rules.user,
      {
    
     validator: userValidator, trigger: 'change' }
    ]
    this.rules = Object.assign({
    
    }, this.rules, {
    
     user: newRule })
}

使用法2:検証ステータスを手動で制御する

TIPの
検証ステータス:検証状態、列挙値、4種類
: --success:検証が成功し
--error:検証failed--
検証:有効
- (空):検証されていない
エラー:カスタムエラープロンプト

1.el-form-item属性を設定します

<el-form-item
  label="用户名"
  prop="user"
  :error="error"
  :validate-status="status"
>
<!-- ... -->
</el-form-item>

2.カスタムステータスとエラー

showError() {
    
    
  this.status = 'error'
  this.error = '用户名输入有误'
},
showSuccess() {
    
    
  this.status = 'success'
  this.error = ''
},
showValidating() {
    
    
  this.status = 'validating'
  this.error = ''
}

フォーム属性の解決

label-position:ラベル位置、列挙値、左と上
label-width:ラベル幅
label-suffix:ラベルサフィックス
インライン:インラインフォーム
無効:フォーム全体のすべてのフォームコンポーネントを無効に設定します。優先度はの優先度よりも低くなります。フォームコンポーネント自体が無効になっている
サイズ:フォームコンポーネントのサイズを設定します

おすすめ

転載: blog.csdn.net/weixin_37877794/article/details/114114141