单选按钮在Vue.js中无法正常工作

时间:2017-04-25 10:04:10

标签: javascript radio-button vue.js

我在一个页面中生成了多个单选按钮组。每个组包含两个项目 -

<div v-if="row.answer_input_type === 'Radio Button'">
                            <template v-for="answer in answers" >
                                <template v-if="answer.AnswerTypeID === row.answer_type_id">
                                   <template v-for="answerdesc in answer.AnswerDescription">
                                       <p>{{answerdesc.AnswerMasterID}}</p>
                                       <input type="radio" v-bind:value="answerdesc.AnswerMasterID" v-bind:name="row.question_id" v-bind:id="answerdesc.AnswerMasterID" v-bind:disabled="row.is_enabled == 1 ? false : true" v-on:click="rdoClick(row.question_id, answerdesc.AnswerMasterID)" v-model="answer.selected_option" />
                                       <label v-bind:for="answerdesc.AnswerMasterID">{{answerdesc.AnswerDescription}}</label>
                                   </template>
                                </template>
                             </template>
                        </div>

但是无论何时在单选按钮组中更改选择,都会在所有其他单选按钮组中反映出相同的内容。也就是说,如果我在所有其他组中的一个组中选择是,则选择是。但v模型各有所不同。如何解决/纠正这个?感谢

3 个答案:

答案 0 :(得分:1)

单选按钮以名称为基础。并且您的name似乎对于一个组来说是相同的,而对于不同的答案组则是不同的。

答案 1 :(得分:1)

使用单选按钮的名称,如下面的代码所示,您的单选按钮应采用表格形式。
例如:name =“ gender”

<form action="post">
    <div>
        <div class="label">Gender <span class="required">*</span></div>
        <label>
            <input type="radio" required name="gender" v-model="gender" value="F">F
        </label>
        <label>
            <input type="radio" required name="gender" v-model="gender" value="M">M
        </label>
    </div>
    <button type="button">Submit</button>
</form>

答案 2 :(得分:0)

Vue尝试尽可能高效地渲染元素,经常重新使用它们而不是从头开始渲染。

这并不总是令人满意的,因此Vue为您提供了一种方式,“元素是完全独立的-请勿重复使用。”为此,请添加具有唯一值的key属性。

在此处阅读更多信息:https://vuejs.org/v2/guide/conditional.html#Controlling-Reusable-Elements-with-key