Doy*_*oun 1 forms validation textfield vuetify.js
我试图验证 v-text-field 仅用于输入数字,但这不是必需的,但规则拒绝通过验证。
我使用了 v-form、v-text-field 和 v-text-field 的规则。
<template>
<v-form ref="form">
<v-text-field
v-model="name"
:label="label"
:rules="rules"
@blur="changeValue"
clearable
></v-text-field>
<v-btn @click="send">submit</v-btn>
</v-form>
</template>
<script>
export default {
data() {
return {
name: "",
rules: [
v =>
v.length <= 50 || "maximum 50 characters",
v =>
(v.length > 0 && /^[0-9]+$/.test(v)) || "numbers only"
]
};
},
methods: {
changeValue(event) {
this.$emit("changeValue", event.target.value);
},
send() {
const valid = this.$refs["form"].validate(); // doesn't pass
if (valid) {
this.$store.dispatch("xxx", {
...
});
}
}
}
};
</script>
Run Code Online (Sandbox Code Playgroud)
单击提交按钮时,显示 v-text-field 的错误消息并且valid为 false。
单击 X(清除图标),错误消息也显示在控制台上:
"TypeError: Cannot read property 'length' of null"
Run Code Online (Sandbox Code Playgroud)
小智 6
有点晚了,但我已经用这个函数解决了它:
rules: [
v => {
if (v) return v.length <= 50 || 'maximum 50 characters';
else return true;
},
],
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1169 次 |
| 最近记录: |