用quasar实现一个常见的表单
时间: 2024-02-23 18:01:06 浏览: 115
好的,下面是一个使用 Quasar 实现的常见表单示例:
```html
<template>
<q-form>
<q-input
label="姓名"
v-model="name"
dense
clearable
:rules="[val => !!val || '姓名不能为空']"
/>
<q-input
label="邮箱"
v-model="email"
dense
clearable
:rules="[val => !!val || '邮箱不能为空', val => emailRegex.test(val) || '请输入有效的邮箱地址']"
/>
<q-select
label="性别"
v-model="gender"
dense
:options="genderOptions"
:rules="[val => !!val || '请选择性别']"
/>
<q-input
label="密码"
v-model="password"
dense
type="password"
clearable
:rules="[val => !!val || '密码不能为空']"
/>
<q-input
label="确认密码"
v-model="confirmPassword"
dense
type="password"
clearable
:rules="[val => !!val || '确认密码不能为空', val => val === password || '两次输入的密码不一致']"
/>
<q-checkbox
label="我同意用户协议"
v-model="agree"
dense
:rules="[val => !!val || '请同意用户协议']"
/>
<q-btn
type="submit"
label="提交"
color="primary"
:disable="!formValid"
/>
</q-form>
</template>
<script>
export default {
data() {
return {
name: '',
email: '',
gender: '',
password: '',
confirmPassword: '',
agree: false,
genderOptions: ['男', '女', '其他'],
};
},
computed: {
formValid() {
return this.$refs.form.validate();
},
emailRegex() {
// 简单的邮箱正则表达式
return /.+@.+\..+/i;
},
},
};
</script>
```
这个示例中使用了 Quasar 提供的表单组件 `q-form`、`q-input`、`q-select` 和 `q-checkbox`,以及按钮组件 `q-btn`,同时也使用了一些 Vue.js 的特性,如 `v-model` 和计算属性等。在表单中,每个输入框都有对应的验证规则,可以通过 `:rules` 属性设置。其中,`formValid` 计算属性用于检查表单是否有效,可以在提交按钮的 `:disable` 属性中使用,以确保只有在表单有效时才能提交。
阅读全文