【问题标题】:can I bind to other input attribute besides value attribute in vuejs除了 vuejs 中的 value 属性,我可以绑定到其他输入属性吗
【发布时间】:2018-03-20 13:55:42
【问题描述】:

我是前端 javascript 框架的新手。目前正在处理一段代码,如果可以在 VueJS 中将 value 以外的其他输入属性绑定到 v-model,我很想知道。这就是我的意思:

在我的 html 中,我有这样的输入:

<input type="checkbox" name="labels[]" id="label_{{$label->id}}" value="{{$label->id}} v-model="checked">

然后我希望通过名称 ($label-&gt;name) 显示已检查的项目,但我仍然需要将它们的值作为后端的 id。

<div v-for="label in checked" >@{{ label }}</div>

这当然会返回项目的 ID,但我需要名称。这可能吗?

【问题讨论】:

    标签: javascript vue.js vuejs2 vue-directives


    【解决方案1】:

    您可以使用true-valuefalse-value

    <input 
     type="checkbox" 
     name="labels[]" 
     id="label_{{$label->id}}" 
     value="{{$label->id}}" 
     v-model="checked"
     true-value="{{$label->name}}"
     false-value="something else" 
     <!-- quote is not required inside true-value, false-value. 
      it will automatically set the type -->
    >
    

    摘自doc

    true-value 和 false-value 属性不会影响输入的 value 属性,因为浏览器不会在表单提交中包含未选中的框。

    【讨论】:

    • 嗨@Bhojendra Nepal,感谢您的回答,但由于某种原因,此解决方案对我不起作用。
    • 当我将 true-value={{$label-&gt;name}} 添加到输入时,它仍然与 value 属性绑定,因此选择项目的 id。我尝试将false-value={{$label-&gt;id}} 放在下面,但仍无法按预期工作。
    • 您是否尝试过在模板中使用this.checkedvm.checkedchecked?它应该会给你想要的结果。
    • 刚刚尝试过但失败了。您有解决方案通过的工作示例吗?
    • 让我们开始演示吧 :) 尝试引用引号但一无所获。
    猜你喜欢
    • 2018-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 1970-01-01
    相关资源
    最近更新 更多