vue-form表单验证是否为空值

Vue表单提交与验证
本文介绍了一个使用Vue.js创建的表单示例,重点讲解如何通过@click和@submit.prevent来触发表单提交,并在submit方法中进行输入验证,如姓名、手机号及导购的选择等。

重点部分:点击表单的 submit按钮 触发form 部分 @submit=”submit”事件:

submit事件 定义在js部分:
prevent:文档上说了在事件后面加上 .prevent就可以阻止默认事件了。

form @submit.prevent=”submit”

 <form @submit.prevent="submit">
        <input type="text" v-model="userName" placeholder="请输入你的姓名"  class="name-style" maxlength="20"/>
        <div class="sex">
            <select v-model="selectedSex">
                <option>boy</option>
                <option  selected = "selected">girl</option>
            </select>
        </div> 
            <input type="text" v-model="phoneNumber" placeholder="请输入你的手机号"  class="phone-number-style"/>
        <div class="guide-style">
            <select v-model="selectedGuild">
                <option selected="selected" value="">请选择一个导购: </option>
                <option v-for="guild in guilds" value ="{{ guild.name }}">{{ guild.name }}</option>
            </select>
        </div>
        <input type="submit" value ="注册" class="register-style"/>
    </form>  
    data () {
        return {
        userName: '',   //请输入你的姓名
        selectedSex: '',//选择性别
        phoneNumber: '',//请输入你的手机号
        guilds: [],     
        selectedGuild: '' ///请选择一个导购
        }
    },
    methods: {

  //1.重点是这个方法 submit () {} - form @submit.prevent="submit" -重点是这个方法 submit () {},
  //2.可以在这里向服务器发送数据
     submit () {

        if (!this.userName) {
            showToast('请输入姓名!')
            return false
        }

        if (!this.phoneNumber) {
            showToast('请输入手机号码!')
            return false
        }

        if (!checkTel(this.phoneNumber)) {
            showToast('手机号格式不正确')
            return false
        }

        if (!this.selectedGuild) {
            showToast('请选择导购!')
            return false
        }

        return true
        }
    }
Vue.js中,如果你需要在`el-form`组件内的数组类型的字段上进行必填验证,你可以使用`v-model`指令结合`required`或自定义校验函数来实现。这里假设你的数组是一个对象数组,并且你想检查每个对象的一个特定属性是否。 首先,在模板层面上,定义你的数组字段并使用`v-model`绑定: ```html <template> <el-form :model="form"> <el-row v-for="(item, index) in form.arrayField" :key="index"> <el-col> <el-form-item label="必填属性" prop="arrayProp[index].requiredAttr"> <el-input v-model="item.arrayProp[index].requiredAttr"></el-input> </el-form-item> </el-col> </el-row> <!-- 其他表单元素... --> </el-form> </template> ``` 然后,在数据层面上,定义一个数组对象`arrayField`,并在对象内包含你想要验证的属性`requiredAttr`: ```javascript data() { return { form: { arrayField: [ { arrayProp: [{ requiredAttr: '' }] }, // 初始化一个示例对象 // ... 更多对象... ] } }; } ``` 接着,在`methods`或者`watch`中,你可以添加一个自定义验证方法,例如: ```javascript methods: { validateArray() { this.form.arrayField.forEach(item => { item.arrayProp.forEach(element => { if (!element.requiredAttr) { this.$refs['yourFormName'].$validate('arrayProp', element); // 使用表单实例名替换 'yourFormName' // 如果验证失败,可以触发错误提示或者阻止提交等操作 } }); }); }, submitForm() { // 验证通过后再提交 this.validateArray(); this.$refs.yourFormName.submit(); // 提交表单 } }, // 当数据改变时自动触发验证 watch: { form(newVal) { this.validateArray(); } } ``` 在这个例子中,当用户尝试提交表单时,`validateArray`会遍历数组并检查每个元素的`requiredAttr`是否。如果发现有值,它会触发相应的验证错误。记得将`'yourFormName'`替换为你实际使用的表单组件名。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值