vant表单邮箱校验

      <!--新闻时讯订阅-->

      <div class="lxp_myfooter_news">

        <div class="lxp_myfooter_news_title">

          {{ $t(`footer.news`).toUpperCase() }}

        </div>

        <div class="lxp_myfooter_news_input">

          <van-form @submit="onSubmit" >

            <van-cell-group inset style="margin-bottom: 2%">

              <van-field

                :rules="telRules"

                name="value"

                v-model="inputvalue"

                :placeholder="$t(`footer.adr`)"

              />

            </van-cell-group>

           

            <van-button

              block

              native-type="submit"

              style="

                border-radius: 4px;

                height: 44px;

                background: #adadad;

                color: #fff;

                font-size: 14px;

              "

               @click="newsletterClick"

            >

              {{ $t(`footer.sub`).toUpperCase() }}

            </van-button>

          </van-form>

        </div>

        <div class="lxp_myfooter_news_button"></div>

      </div>

  data() {

    return {

      telRules: [

        {

          required: true,

          message: "E-mail is required",

          trigger: "onBlur",

        },

        {

          // 自定义校验规则

          validator: (value) => {

            return /.+@.+\..+/.test(value);

          },

          message: "E-mail must be valid",

          trigger: "onBlur",

        },

      ],

      inputvalue: "",

}

 methods: {

    onSubmit(data) {

      console.log(data);

    },

    //订阅

    newsletterClick() {

      if (this.telRules) {

        return submitSubscribe({ email: this.inputvalue }).then((res) => {

          console.log(

            "============订阅",

            res,

            "============输入值",

            this.inputvalue

          );

          if (res && res.code == 0) {

            Toast(res.message)

          } else {

            Toast(res.message)

          }

        });

      } else {

        Toast("The email field is required.");

      }

    },

  },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是动态生成vant表单以及校验的实现方法: 1. 引入vant组件库和表单校验插件`vee-validate`。 ```javascript import Vue from 'vue' import VeeValidate from 'vee-validate' import { Form, Field, Button } from 'vant' Vue.use(Form) Vue.use(Field) Vue.use(Button) Vue.use(VeeValidate, { inject: false }) ``` 2. 在组件中定义表单数据和校验规则。 ```javascript export default { data() { return { form: { name: '', age: '', email: '', phone: '' }, rules: { name: [ { required: true, message: '姓名不能为空' }, { min: 2, max: 5, message: '姓名长度为2-5个字符' } ], age: [ { required: true, message: '年龄不能为空' }, { type: 'integer', message: '年龄必须为整数' }, { min: 18, max: 60, message: '年龄在18-60之间' } ], email: [ { required: true, message: '邮箱不能为空' }, { type: 'email', message: '邮箱格式不正确' } ], phone: [ { required: true, message: '手机号不能为空' }, { pattern: /^1[3456789]\d{9}$/, message: '手机号格式不正确' } ] } } } } ``` 3. 在模板中动态生成表单。 ```html <van-form :model="form" :rules="rules" ref="form"> <van-field v-model="form.name" name="name" label="姓名" placeholder="请输入姓名"></van-field> <van-field v-model="form.age" name="age" label="年龄" placeholder="请输入年龄"></van-field> <van-field v-model="form.email" name="email" label="邮箱" placeholder="请输入邮箱"></van-field> <van-field v-model="form.phone" name="phone" label="手机号" placeholder="请输入手机号"></van-field> <van-button type="primary" @click="handleSubmit">提交</van-button> </van-form> ``` 4. 在方法中定义表单提交处理函数,并进行表单校验。 ```javascript export default { methods: { handleSubmit() { this.$refs.form.validate((valid) => { if (valid) { // 表单校验通过,提交表单 console.log(this.form) } else { // 表单校验不通过,提示错误信息 Toast('请正确填写表单信息') } }) } } } ``` 这样就实现了动态生成vant表单以及校验

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值