vue.js - 如果在 Vue.js 中禁用输入,则更改背景颜色

标签 vue.js

刚开始使用 Vue.js 有很多东西要学。 我想在禁用输入时更改背景颜色,因为计算函数返回 true。我似乎无法让它发挥作用。

这是我的默认导出

computed: {
  disableField () {
    if (condition) return true
  }
}

这是我的模板

<input
  :class="{ disableInput: disableField }"
  :disabled="disableField"
/>

这是在我的 CSS 中

.disable-input {
  background-color: gray;
}

当计算函数返回 true 但不更改背景颜色时,它会禁用该字段。

最佳答案

正如@dziraf 所指出的,您的类名是 'disable-input',因此将其更改为 :class="{'disable-input': disabled}",那么应该可以正常工作。

或者如果此输入仅绑定(bind)此类,则使用 :class="disabled ? 'disable-input' : ''" 是另一种解决方案。

或者您可能想使用 css 选择器来实现相同的目标,例如:

输入:禁用{ 背景颜色:红色; }

下面是一个演示:

new Vue({
  el: '#app',
  data () {
    return {
      disabled: true
    }
  }
})
input:disabled {
  background-color:red;
}

input.disable-input {
  background-color: gray;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>
<div id="app">
  <button @click="disabled=!disabled">Toggle {{disabled}}</button>
  <input :disabled="disabled" :value="'abc'">
  <input :disabled="disabled" :value="'abc'" :class="{'disable-input': disabled}">
  <input :disabled="disabled" :value="'abc'" :class="disabled ? 'disable-input' : ''">
</div>

关于vue.js - 如果在 Vue.js 中禁用输入,则更改背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52526445/

相关文章:

javascript - 无法在vue中导入Observable

html - 将插槽传递到 Vue.js 中的插槽

javascript - 如何连接来自 API 的 JSON 响应中的键并在 VUE 组件中显示

javascript - 在VueJS中生成bip39助记词,出现错误Uncaught ReferenceError : global is not defined

javascript - Vue.js:当用户登录或未登录时,根据 Vuex Store 状态显示/隐藏导航栏上的按钮

javascript - 使用 Vuejs 求两个数字之和的按钮函数

javascript - 当组件获取 props VueJS 时强制更新

css - 在 Vue.js 中使用 CSS 使用省略号截断文本不起作用

javascript - Axios-POST 添加错误捕获后抛出错误 : ReferenceError: axiosRequest is not defined

javascript - 如何响应式更新 vue.js 循环中的数组?