下拉列表未锁定

时间:2013-07-10 17:55:02

标签: javascript select data-binding

我有一个带有下拉列表的div。 我试图禁用所有div。我成功但我无法禁用下拉列表。 这个div由名为cb3的select标签组成。我使用Knock Out。(你看到的所有数据绑定)。 条件值:hete.selectedvalue,enable:format.selectedvalue()!=' xxx'破坏我想做的禁用。

<div class="DivStyle1" data-bind="disableByRole: hetel.readOnlyValue">
        <div id="div-for-cb3" class="div-for-combo poscombo3"">
<select id="cb3" onchange="onSelectChange(this.id, this.options[this.selectedIndex].innerHTML)" dir="rtl" class="SelectStyle3" data-bind="options: hete.defaultValue,value: hete.selectedvalue,enable:format.selectedvalue()!='xxx' "><option value="x1">x1</option><option value="x2">x2</option><option value="x3">x3</option><option value="x4">x4</option></select>
            <span id="label-for-cb3" class="label-for-combo" data-bind="text:hete.selectedvalue"">x4</span>
        </div>

        <span class="SpanStyle3">:hete</span>
        <img id="hetelIMG" onclick="ChangeImg('hete','#heteIMG')" data-bind="attr:{src: myview.hete.readOnlyUrl}" class="ImgStyle3" " src="./idle.png">
    </div>

在其他js文件中:

ko.bindingHandlers.disableByRole = {
    update: function(element, valueAccessor, allBindingsAccessor) {
        var value = valueAccessor();
        var allBindings = allBindingsAccessor();
        var valueUnwrapped = ko.utils.unwrapObservable(value);
        var isDisabled = valueUnwrapped == 'true' 
        if (isDisabled)
        $(element).find('*').attr('disabled', 'disabled')
                            .prop('onclick', false)
                            .css('opacity',0.7);
    }
};

只有select标签没有被禁用...为什么?

1 个答案:

答案 0 :(得分:0)

我相信你需要在。之后添加.change()。

 $(element).find('*').attr('disabled', 'disabled').prop('onclick', false).css('opacity',0.7).change();
相关问题