当使用Map渲染选项时,CanJS can-value不适用于多选?

时间:2015-01-03 21:53:28

标签: javascript canjs canjs-view

我无法使用can-value helper为多选输入获取所选值。

当使用can.Map动态呈现选项而不是在DOM中提供选项时,会出现此问题。

这是解释这个问题的小提琴:

http://jsfiddle.net/neildcruz19/ramey3zo/6/

控制

var selectControlInst = null;

var selectControl = can.Control({
},{

    init : function ( element, options) {
        $( element ).html(can.view('multiSelectTemplate',this.getMap()));
    },

    getMap : function() {
        return new can.Map({
            selectedOptions : ['option1','option2'],

            options : [{
                display :'Option 1',
                value :'option1'
            },
            {
                display :'Option 2',
                value :'option2'
            },
            {
                display :'Option 3',
                value :'option3'
            },
            {
                display :'Option 4',
                value :'option4'
            },
            {
                display :'Option 5',
                value :'option5'
            }]
        });
    }
});

$(function(){    
    selectControlInst = new selectControl('.selectContainer');
});

髭/ HTML

<script id="multiSelectTemplate" type="text/mustache">
    <select class="multipleSelect" can-value="selectedOptions" multiple="multiple" size="5">
        {{#options}}
            <option value="{{value}}">{{display}}</option>
        {{/options}}
    </select>
    <br/>
    <br/>
    <select class="multipleSelect" can-value="selectedOptions" multiple="multiple" size="5">
        <option value="option1">Option 1</option>
        <option value="option2">Option 2</option>
        <option value="option3">Option 3</option>
        <option value="option4">Option 4</option>
        <option value="option5">Option 5</option>
    </select>
</script>

我有办法解决这种情况吗?

0 个答案:

没有答案