【问题标题】:Changing background color if an input is disabled in Vue.js如果在 Vue.js 中禁用输入,则更改背景颜色
【发布时间】:2018-09-26 21:46:15
【问题描述】:

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

这是我的导出默认值

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

这是在我的模板中

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

这是在我的 CSS 中

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

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

【问题讨论】:

    标签: vue.js


    【解决方案1】:

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

    或者如果这个输入只绑定这个类,使用:class="disabled ? 'disable-input' : ''"是另一种解决方案。

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

    input:disabled { background-color:red; }

    以下是一个演示:

    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>

    【讨论】:

      【解决方案2】:

      更正了下面的语法。用引号将您的班级名称括起来。:

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

      【讨论】:

      • 应该是'disable-input'
      • @dziraf 你是对的。 disable-input 有效。谢谢!我正在阅读的有关 Vue.js 的这篇博客说使用骆驼案例:(
      • 看官方文档,非常好,这个话题也有。
      猜你喜欢
      • 2021-03-07
      • 2021-02-01
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 2014-12-25
      • 2022-01-06
      • 1970-01-01
      相关资源
      最近更新 更多