如何在Vue组件中动态设置input的required属性?
动态绑定Vue组件的required布尔属性
在Vue中处理required这类布尔型HTML属性很简单,直接通过动态属性绑定就能实现需求:当props的required为true时渲染required属性,为false时不渲染。
修改你的input元素代码,添加:required="required"绑定即可:
<template> <div> <label :class="required ? 'required' : ''">{{ label }}</label> <div> <input :value="modelValue" v-on:input="updateValue($event.target.value)" type="text" :required="required" <!-- 新增这一行 --> /> </div> <p v-if="note" v-text="note"></p> </div> </template> <script setup> defineProps({ label: String, modelValue: String, required: { type: Boolean, default: false } }) const emit = defineEmits(['update:modelValue']) function updateValue(value){ emit('update:modelValue', value); } </script>
原理说明:Vue对布尔属性有特殊处理逻辑——当绑定值为true时,会渲染成不带值的原生HTML属性(即<input ... required>);当绑定值为false时,该属性不会出现在DOM元素上,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

