是否可以使用 VueJS 和 BootstrapVue 禁用页面中的所有输入?

Posted

技术标签:

【中文标题】是否可以使用 VueJS 和 BootstrapVue 禁用页面中的所有输入?【英文标题】:Is it possible to disable all the inputs from a page with VueJS and BootstrapVue? 【发布时间】:2019-07-06 13:24:08 【问题描述】:

我在一页中有多个按钮和表单输入。所有这些按钮和表单输入都需要根据条件禁用或启用。

我知道可以在标签中使用 disabled 关键字来禁用特定的输入或按​​钮。另外,我可以添加代码

:disabled="true"

根据变量的布尔值禁用输入。 但是,这个解决方案对我来说是不可接受的,因为我必须将这行代码添加到我页面上的每个输入中(我将来可能会创建新页面,包含尽可能多的输入)。

我想知道是否有一种方法可以让我简单地禁用所有输入的父容器,以便禁用子项(输入)。

【问题讨论】:

【参考方案1】:

如果您在运行代码时检查 VM 的 Vue 实例本身,您可以在 console.log(this) 时看到类似的内容,

如果你使用正确的范围,它会给你类似的输出:


$attrs
$options
.......
$el

在 $el 内部有用于访问 firsElementChild、previousElementChild、previousElementSibling 等的对象属性。有很多与 html 相关的属性,但是,以这种方式访问​​ HTML 元素会很快变得混乱。我认为您最好的解决方案是您已经提到或动态更改 CSS 类的解决方案。

如果您使用 v-if 在父对象上进行条件渲染,您也可以实现非常相似的功能。

See: Conditional rendering

【讨论】:

以上是关于是否可以使用 VueJS 和 BootstrapVue 禁用页面中的所有输入?的主要内容,如果未能解决你的问题,请参考以下文章

reactstrap 是不是可以与 bootstrap v5 一起压缩

是否可以在 VueJS 中绑定使用 url() 的 SVG 填充属性?

是否可以使用 Javascript/VuejS/Nodejs 包将特定的 JSON 键移动到 JSON 的顶部?

是否可以将 Webpack/VueJS 与 Odoo 框架(v12)集成?

VueJS 和 Laravel 多页面

是否可以从安装在 Vuejs 中发射?