You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 17:36:15