动态输入数量

时间:2017-08-06 21:21:11

标签: javascript vue.js vuejs2 vue-component

我对数组中的无线电输入动态数有问题

Color:<br>
<label><input type="radio" name="params[54]" value="21">Blue</label>
<label><input type="radio" name="params[54]" value="38">Yellow</label>
Size:<br>
<label><input type="radio" name="params[12]" value="32">S</label>
<label><input type="radio" name="params[12]" value="44">M</label>
<label><input type="radio" name="params[12]" value="58">L</label>

它不能只是颜色和大小,它应该有超过两个或三个输入。 我使用VueJS Component。

export default {
    data () {
        return {
            params: {}
        }
    },
    methods:{
        update: function(){
            // here I want use params
        }
    }
}

我需要观察更改输入并获取params对象,例如:

{
    54: 21,
    12: 44
}

在我的旧jQuery代码中,我这样做

$("input[type=radio]").on("change", function(){
        var selected = {};
        $("input:checked").each(function(a, b){
            selected[$(b).data("param-id")] = $(b).data("value-id");
        });
});

但在此,我真的不知道如何才能在Vue做到这一点。有什么想法吗?

修改 我通过传递参数列表来编织它

var params = JSON.parse(this.$attrs.params);
for(var key in params){
    this.$set(this.params, key, 0);
    this.$watch("params."+key, function(){
        this.update();
    });
}

将v-model添加到输入

<label>
    <input
    :checked="params[54] == 21"
    v-model="params[54]"
    type="radio"
    name="params[54]"
    v-bind:value="21"
    >
    Blue
</label>

现在我可以使用this.attributes获取所选参数的对象。

0 个答案:

没有答案