antd input框使用disable问题

本文探讨了在Angular项目中设置nz-input组件disabled属性时遇到的问题及解决方案。详细介绍了不同实现方式下组件的表现差异,包括鼠标悬停显示不可输入标志但仍能获取焦点的问题,并给出了一种既符合预期又无警告信息的实现方案。

8.5x版本,12版本的话用官网就可行(不过不能用于form,8.5x版本在12版本的from中也不可以了,去掉nz-input可行不过得自己写样式)

如果按照官网的方法

<input nz-input placeholder="Basic usage" [(ngModel)]="value" [disabled]="true" />

官方示例是正常的,但用在自己的项目中鼠标悬停会有一个红色的不可输入符号,但是依然可以获取焦点并修改值

如果使用html5 

<input nz-input placeholder="Basic usage" [(ngModel)]="value" disabled="true" />页面效果正常,控制台会抛出警告

想要得到官网示例的效果同时没有警告信息可以使用

<input type="text" nz-input [attr.disabled]="true" />

参考博文Angular7设置Input的disabled属性_henreash的专栏-优快云博客

之前也有看过不知道是不是这个了,当时忘了记录这个问题,补上了

Vue 中,`disable` 属性通常用于禁用表单元素(如按钮、输入、下拉等),以下是几种常见的使用方式: ### 静态绑定 可以直接在模板中为元素的 `disabled` 属性赋值,以决定元素是否禁用。 ```vue <template> <button disabled="true">禁用按钮</button> <input type="text" disabled="true" placeholder="禁用输入"> </template> ``` ### 动态绑定 使用 `v-bind` 指令(简写为 `:`)将 `disabled` 属性与 Vue 实例的数据或计算属性绑定,根据数据的变化动态控制元素的禁用状态。 ```vue <template> <button :disabled="isButtonDisabled">点击</button> <input type="text" :disabled="isInputDisabled" placeholder="输入"> </template> <script> export default { data() { return { isButtonDisabled: false, isInputDisabled: true }; } }; </script> ``` 当 `isButtonDisabled` 为真值或一个空字符串 (即 `<button disabled="">`) 时,按钮会包含这个 `disabled` attribute,而当其为其他假值时 `disabled` attribute 将被忽略[^4]。 ### 绑定方法 可以将 `disabled` 属性绑定到一个方法,根据方法的返回值来决定元素是否禁用。 ```vue <template> <button :disabled="isDisabled('button')">点击</button> </template> <script> export default { data() { return { selectedItems: [], refs: { button: { selected: false } } }; }, methods: { isDisabled(e) { if (this.selectedItems.length >= 5 && this.$refs[e] && this.$refs[e][0].selected !== true) { return true; } else { return false; } } } }; </script> ``` 上述代码中,`isDisabled` 方法根据 `selectedItems` 数组的长度和选项当前的选中状态进行判断,如果选项个数超过指定数目,且选项状态为未被选中,则返回为 `true`,否则返回 `false`[^3]。 ### 在 Vue Antd使用 在 `vue antd` 项目中,`disable` 属性可用于实现一些交互限制,如 checkbox 多选限制选择个数。 ```vue <template> <a-checkbox-group v-model="checkedList" :options="plainOptions" :disabled="isCheckDisabled" /> </template> <script> export default { data() { return { checkedList: [], plainOptions: ['选项1', '选项2', '选项3', '选项4', '选项5'], maxSelectCount: 3 }; }, computed: { isCheckDisabled() { return this.checkedList.length >= this.maxSelectCount; } } }; </script> ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值