Heim  >  Artikel  >  Web-Frontend  >  Grundelemente der Elementformularvalidierung in Vue

Grundelemente der Elementformularvalidierung in Vue

不言
不言Original
2018-07-14 15:52:104022Durchsuche

Dieser Artikel stellt hauptsächlich die Grundelemente der Element-Formularvalidierung in Vue vor. Jetzt kann ich ihn mit Ihnen teilen.

Element verwendet hauptsächlich Async-Validator Die Bibliothek ist hauptsächlich in drei Teile unterteilt: Formularvalidierung

async-validator

  • Validieren

  • Optionen

  • Regeln

Davon sind Regeln für uns am wichtigsten, wenn wir Element verwenden, und es ist auch der Teil mit dem meisten Inhalt.

Teile von async-validator

Grundlegende Verwendung von async-validator

import Validator from 'async-validator'

// 规则的描述
const rules = {
  name: { type: 'string', required: true }
}

// 根据规则生成验证器
const validator = new Validator(rules)

// 要验证的数据源
const source = {
  name: 'LanTuoXie'
}

// 验证后的回调函数
function callback (errors, fileds) {
  if (errors) {
    // 验证不通过,errors是一个数组,记录那些不通过的错误信息
    // fileds是所有数据源的字段名,也即上面的source的'name'
    // 验证是根据字段名来的,rules.name 对应 source.name。 字段名要一样才会验证
  }
  // 下面是验证通过的逻辑
}

// 验证数据源是否符合规则
validator.validate(source, callback)

Validieren

Das ist it Der validator.validate im Beispiel ist eine Funktion

function(source, [options], callback)

Quelle und Rückruf entsprechend dem obigen Beispiel.

Optionen

Optionen hat zwei Werte

  • first: ein boolescher Wert, wenn das Feld dies nicht ist übergeben, Beenden Sie das Feld hinter der Validierung

  • firstFields: Boolescher Wert oder String. Wenn eine Regel bei der Validierung eines Felds nicht erfolgreich ist, beenden Sie die Validierung der nächsten Regel (eines Felds). , mehrere Regeln) )

firstFields wird verwendet, wenn mehrere Regeln für ein einzelnes Feld vorhanden sind, während first für alle Felder

verwendet wird Regeln

Das Wichtigste sind Regeln. Regeln können in drei Formen definiert werden, der Feldname der Regel muss jedoch mit dem Feldnamen der Datenquelle übereinstimmen.

  • Funktionsmodus: { name(rule, value, callback, source, options) {} }

  • Objektmodus: { name: { type: 'string', required: true } }

  • Array-Methode : { name: [{ type: 'string' }, { required: true }] }

Wie Sie oben sehen können, kann der Feldname auf drei Arten definiert werden. Bei Verwendung von Element werden weiterhin die Objekt- und Array-Methoden empfohlen ist relativ einfach und die Funktion wird je nach Situation verwendet.

Was kann zusätzlich zu type und required noch verwendet werden und wozu dient es?

Standardregeln von Regeln

  • type: Die zu überprüfenden Datentypen sind wie url und number usw.

  • required: Ist es erforderlich?

  • pattern: Verwenden Sie reguläre Ausdrücke zur Überprüfung

  • min: Die Länge der Daten. Mindestwert von (Datentyp muss string oder array sein).

  • max: Maximalwert der Datenlänge (Datentyp muss sein sei string oder array )

  • len: Die Länge der Daten muss diesem Wert entsprechen (der Datentyp muss string oder array sein)

  • enum: Der Wert der Daten muss einem bestimmten Element dieses Aufzählungsarrays entsprechen { enum: [1, 2, 3] }

  • transform : Eine Hook-Funktion, die die Daten verarbeiten und dann überprüfen kann, bevor die Überprüfung beginnt. Konvertieren Sie beispielsweise number in string und überprüfen Sie dann

  • message: Der Fehler Nachricht kann eine Zeichenfolge oder ein jsx-Tag sein 45a2772a6b6107b401db3c9b82c049c2Name is required54bdf357c58b8a65c66d7c19c8e4d114

  • validator: Benutzerdefinierte Überprüfungsfunktion und Fehlermeldungvalidator(rule, value, callback)

  • Da ist auch ein Deep Rules, das object- oder array-Typen verarbeitet. Wird fields oder defaultField

  • fields verwendet: Wird verwendet, wenn Deep Rules zum Definieren des Felds verwendet wird Namen und Regeln der nächsten Ebene

  • defaultField: Wird bei Verwendung von Deep Rules verwendet. Alle Felder in der nächsten Ebene übernehmen diese Regel und können durch fields

    ersetzt werden

Standardtyp

  • string: Muss vom Typ „String“ sein. Wenn die Regel den Typ nicht festlegt, ist der Standardtyp dieser

  • number: Muss vom Typ „Zahl“ sein, wenn die vom Hintergrund zurückgegebenen Daten ein Zeichen sind. Zeichenfolgen können mit transform nicht in den Typ „Zahl“ konvertiert werden bestehen. Bitte beachten Sie, dass

  • boolean: vom booleschen Typ sein muss

  • method: Funktion sein muss

  • regexp: Muss regulärer RegExp sein

  • integer: Es ist eine positive Ganzzahl vom Typ Zahl

  • float: Es ist eine Gleitkommazahl vom Typ Zahl

  • array: Es ist ein Array, das von isArray übergeben wird

  • object: Objekttyp wird nicht von Array.isArray übergeben

  • enum: enum muss zuerst definiert werden, und dann muss der Wert ein bestimmter Wert von enum

  • : muss eine Instanz des Date-Objekts sein date

  • : String-Typ und entspricht dem Linkformat url

  • hex

  • : String-Typ und entspricht dem E-Mail-Format email

Deep Rules使用demo

cosnt urls = ['http://www.baidu.com', 'http://www.baidu.com']
// 一个urls的数组,
const rules = {
  urls: {
    type: 'array',
    required: true,
    defaultField: { type: 'url' }
  }
}
const ids = {
  name: 'LanTuoXie',
  age: 12,
  spc: '帅'
}

const rules = {
  ids: {
    type: 'object',
    required: true,
    fields: {
      name: { type: 'string', required: true },
      age: { type: 'number', required: true, tranform: Number },
      spc: { type: 'string', required: true }
    }
  }
}

自定义验证validator

validator(rule, value, callback)

  • rule: 记录了验证字段的字段名以及规则的信息

  • value: 要验证的值

  • callback: 如果callback()代表验证通过,如果callback(new Error('错误要提示的信息'))代表验证不通过

// 验证是[min, max]范围内的正整数
const betweenInt = (min, max) => (rule, v, cb) => {
  const isBetween = v >= min && v <= max
  const isInt = /^[0-9]+$/.test(v)
  if (isBetween && isInt) return cb()

  return cb(new Error(`要求是在${min}到${max}的正整数 [${min}, ${max}]`))
}

const rules = {
  num: { validator: betweenInt(1, 5), required: true }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网! 

 相关推荐:

vue项目中如何实现保存头像以及base64字符串转图片的功能

Vue中for in对象时如何解决属性为非负整数的问题

Das obige ist der detaillierte Inhalt vonGrundelemente der Elementformularvalidierung in Vue. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn