javascript - 从输入中解开文本字段的图标单击启用
问题描述
我想实现一个输入字段,如果需要,用户可以解锁。
从视觉上看,我认为按钮应该在场外或场内,但与它紧密相连。
为此,我一直在使用Vuetify Text Field 的 append-outer-icon
props :
模板:
<v-text-field
v-model="message"
:append-outer-icon="icon"
@click:append-outer="locked = !locked"
:disabled="locked"
></v-text-field>
这是脚本:
data: () => ({
message: '',
locked: true,
}),
computed: {
icon () {
return this.locked ? 'lock' : 'lock_open'
}
},
这是 Codepen 的链接:https ://codepen.io/anon/pen/jQaJPK
但是,当输入被禁用时,无法单击该按钮。
有没有办法在输入未使用此方法时启用按钮,或者我是否被迫将按钮和输入分开?
解决方案
您可以覆盖阻止图标点击事件的 CSS:
.v-input--is-disabled:not(.v-input--is-readonly) .v-icon.v-icon--disabled {
pointer-events: auto;
}
或者对于其他自定义,您可以将图标放在append-outer
插槽内(还有append
用于“内部”HTML 的插槽),添加自定义图标类并覆盖防止点击的 CSS。
<v-text-field
v-model="message"
:disabled="locked"
>
<v-icon
slot="append-outer"
@click="locked = !locked"
class="lock-button"
>
{{ icon }}
</v-icon>
</v-text-field>
color="black"
因此,您也可以添加v-icon
例如,这样它看起来就不会被禁用。
CSS:
.lock-button {
pointer-events: auto;
}
推荐阅读
- laravel - 使用 gmail smtp-relay(数据库队列驱动程序)的 laravel swift-mailer 异常“预期响应代码 250,但得到一个空响应”
- android - 在创建活动 Android 之前启动协程
- javascript - 未调用socket.io“连接”事件
- postgresql - 创建 hstore 索引时出现 Liquibase Postgres 错误
- swiftui - 使用 NavigationLink 时不重新加载选项卡项的 SwiftUI 问题
- javascript - 在 html、JS 和 Node 之间向 MongoDB 发送数据的正确方法
- python - Python 获取所有股票行情
- bash - Bash:同一行上多个命令的输出
- python - numpy.where , numpy.take 和多维数组上的索引
- angular - Angular 2+ (v11) 自动将 URL 中的片段哈希 (#) 编码为 %23