VUE 表单中第二个下拉框要根据第一个下拉框数据进行选择(必须先选择第一个,才能选择第二个)

1、当第一个下拉框未选择数据时,第二个下拉框先disabled,并校验提示请先选择第一个下拉框。

2、当选择完第一个下拉框后,触发change事件。第二个下拉框变为可以选择,同时清除 ‘请先选择第一个下拉框’ 的校验提示。

3、对第二个下拉框的校验提示语句更新。

代码部分:

1、表单

<el-form ref="form" :rules="rules" :model="dialogForm" label-width="105px">
  <el-form-item label="配置类型" prop="data1">
    <el-select class="w-450" v-model="dialogForm.data1" clearable placeholder="请选择配置类型" @change="handleChange">
      <el-option v-for="item in configurationTypeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
    </el-select>
  </el-form-item>
  <el-form-item label="插件类型" prop="data2" :rules="dialogForm.data1 == ''?rules.data2:[{required: true, message: '请选择插件类型', trigger: 'change' }]">
    <el-select class="w-450" v-model="dialogForm.data2" clearable placeholder="请选择插件类型" :disabled="dialogForm.data1==''">
       <el-option v-for="item in dialogPluginTypeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
    </el-select>
  </el-form-item>
</el-form>

2、表单的校验

rules: {
  data1: [{required: true, message: '请选择配置类型', trigger: 'change'}],
  data2: [{required: true, message: '请先选择配置类型', trigger: 'change'}],
},

3、方法

handleChange(){
  this.$set(this.dialogForm,'data2','')
  //清除校验的提示语
  this.$refs['form'].clearValidate('data2');

  //还需要自行加上获取第二个下拉框数据的事件
  this.xxxx();
},

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基本的表单验证示例,使用了 Element UI 和 Vue.js: ```vue <template> <el-form ref="form" :model="form" :rules="rules"> <el-form-item label="下拉框1" prop="select1"> <el-select v-model="form.select1" placeholder="请选择"> <el-option label="选项1" value="option1"></el-option> <el-option label="选项2" value="option2"></el-option> <el-option label="选项3" value="option3"></el-option> </el-select> </el-form-item> <el-form-item label="下拉框2" prop="select2"> <el-select v-model="form.select2" placeholder="请选择"> <el-option label="选项1" value="option1"></el-option> <el-option label="选项2" value="option2"></el-option> <el-option label="选项3" value="option3"></el-option> </el-select> </el-form-item> <el-form-item label="数字输入框" prop="number"> <el-input v-model.number="form.number" type="number" min="0"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> </el-form-item> </el-form> </template> <script> export default { data() { return { form: { select1: '', select2: '', number: '' }, rules: { select1: [{ required: true, message: '请选择下拉框1', trigger: 'change' }], select2: [{ required: true, message: '请选择下拉框2', trigger: 'change' }], number: [ { required: true, message: '请输入数字', trigger: 'blur' }, { validator: this.validateNumber, trigger: 'blur' } ] } }; }, methods: { submitForm() { this.$refs.form.validate(valid => { if (valid) { // 表单验证通过,提交数据 console.log(this.form); } else { // 表单验证失败 return false; } }); }, validateNumber(rule, value, callback) { if (!Number.isInteger(Number(value))) { callback(new Error('请输入整数')); } else if (value < 0) { callback(new Error('请输入0或更大的数字')); } else { callback(); } } } }; </script> ``` 在上面的示例,我们使用了 `<el-form>` 组件来创建表单,每个表单项都是一个 `<el-form-item>`,并且设置了 `prop` 属性来指定该表单项对应的数据属性名。同时,我们还为每个表单项设置了验证规则,使用了 `rules` 属性来指定。在规则,我们使用了 `required` 规则来指定必填项,并设置了相应的提示信息。对于数字输入框,我们还使用了自定义的验证方法 `validateNumber` 来验证输入值是否为非负整数。在 `submitForm` 方法,我们使用了 `$refs.form.validate` 方法来验证表单,如果验证通过,则提交表单数据

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值