我有一个输入:

<input 
  type="text" 
  id="name" 
  class="form-control" 
  name="name"  
  v-model="form.name" 
  :disabled="validated ? '' : disabled"
/>

在Vue.js组件中,我有:

..
..
ready() {
  this.form.name = this.store.name;
  this.form.validated = this.store.validated;
},
..

验证是一个布尔值,它可以是0或1,但无论数据库中存储的是什么值,我的输入总是禁用的。

我需要输入被禁用,如果为假,否则它应该是启用和可编辑的。

更新:

这样做总是启用输入(无论我在数据库中有0或1):

<input 
  type="text" 
  id="name" 
  class="form-control" 
  name="name" 
  v-model="form.name" 
  :disabled="validated ? '' : disabled"
/>

这样做总是禁用输入(无论我有0或1在数据库):

<input 
  type="text" 
  id="name" 
  class="form-control" 
  name="name" 
  v-model="form.name" 
  :disabled="validated ? disabled : ''"
/>

当前回答

请记住,ES6集/地图似乎没有反应,据我所知,在写作的时候。

其他回答

我的解决方案:

// App.vue模板:

<button
            type="submit"
            class="disabled:opacity-50 w-full px-3 py-4 text-white bg-indigo-500 rounded-md focus:bg-indigo-600 focus:outline-none"
            :disabled="isButtonDisabled()"
            @click="sendIdentity()"
          >
            <span v-if="MYVARIABLE > 0"> Add {{ MYVARIABLE }}</span>
            <span v-else-if="MYVARIABLE == 0">Alternative text if you like</span>
            <span v-else>Alternative text if you like</span>
          </button>

风格基于顺风

// App.vue脚本:

 (...)
  methods: {
   isButtonDisabled(){
    return this.MYVARIABLE >= 0 ? undefined: 'disabled';
   }
 }

手册: vue v2 vue v3

如果isButtonDisabled的值为null、undefined或false,则 Disabled属性甚至不会被包含在被呈现的对象中 元素。

禁用属性需要一个布尔值:

<输入:disabled=“验证”/>

注意我如何只检查是否验证-这应该工作为0是假的

0在JS中被认为是假的(如undefined或null)

1实际上被认为是正确的

要格外小心,试试: <禁用输入:= " ! !验证" / >

这种双重否定将0或1的假值或真值转换为假值或真值

不相信我?进入控制台,输入!!0或!!1: -)

此外,为了确保你的数字1或0绝对是一个数字,而不是字符串'1'或'0',你正在检查的值前面有一个+ e.g. <input:disabled="!! "+validated"/>将一个数字字符串转换为数字

+1 = 1 +'1' = 1 就像David Morrow上面说的,你可以把你的条件逻辑放到一个方法中——这给了你更可读的代码——只是从方法中返回你想检查的条件。

如果你使用SFC,并想要一个最小的例子,这将是你如何使用它:

导出默认值{ 数据(){ 返回{ disableInput:假 } }, 方法:{ toggleInput () { 这一点。this.disableInput = } } } <模板> < div > <input type="text":disabled="disableInput"> <button @click="toggleInput">切换输入</button> < / div > < /模板>

单击该按钮会触发toggleInput函数,并简单地用它来切换disableInput的状态。this.disableInput = !

可以使用此添加条件。

  <el-form-item :label="Amount ($)" style="width:100%"  >
            <template slot-scope="scoped">
            <el-input-number v-model="listQuery.refAmount" :disabled="(rowData.status !== 1 ) === true" ></el-input-number>
            </template>
          </el-form-item>

你可以在vue.js中操作:disabled属性。

它将接受一个布尔值,如果它为真,则输入被禁用,否则将启用…

以你的例子为例,结构如下:

<input type="text" id="name" class="form-control" name="name" v-model="form.name" :disabled="validated ? false : true">

同时阅读下面这篇文章:

通过JavaScript有条件地禁用输入元素 你可以有条件地inline禁用输入元素 JavaScript表达式。这种紧凑的方法提供了一个快速的 应用简单条件逻辑的方法。例如,如果你只需要 要检查密码的长度,您可以考虑采取一些措施 像这样。

<h3>Change Your Password</h3>
<div class="form-group">
  <label for="newPassword">Please choose a new password</label>
  <input type="password" class="form-control" id="newPassword" placeholder="Password" v-model="newPassword">
</div>

<div class="form-group">
  <label for="confirmPassword">Please confirm your new password</label>
  <input type="password" class="form-control" id="confirmPassword" placeholder="Password" v-model="confirmPassword" v-bind:disabled="newPassword.length === 0 ? true : false">
</div>