【问题标题】:oracle JET Combobox(dropdown) value does not disappear on populating empty arrayoracle JET Combobox(dropdown) 值在填充空数组时不会消失
【发布时间】:2018-08-03 06:16:15
【问题描述】:

Screenshots of dropdowns我正在使用 Oracle JET 组合框,并在某些事件发生变化时为其动态分配值。 当一个空数组分配给下拉列表时,它仍然显示旧的选定值(如图 4 所示)。

下面是我写的代码: HTML:

<oj-select-one id="id1"  options="[[newDropDown1]]" 
options-keys.label="name" options-keys.value="value" 
on-value-changed="[[myOnChange]]"  value="">   </oj-select-one>

<oj-select-one id="id2" options="[[newDropDown]]"  
options-keys.label="name" options-keys.value="value"      
value=""  placeholder="select .."></oj-select-one>

JS:

self.newDropDown1 =ko.observableArray([{name:'Chrome',value:1},
                                    {name:'Opera' ,value:0},
                                    {name:'Firefox' ,value:2}]);

self.newDropDown =ko.observableArray([{name:'Yes',value:1},
                                    {name:'No' ,value:0}]);

self.myOnChange = function() {
              self.newDropDown([]);
            }

【问题讨论】:

    标签: knockout.js oracle-jet


    【解决方案1】:

    将其值绑定到像self.newDropDownValue 这样的可观察对象。

    在更改事件处理程序时将其设置为空 self.newDropDownValue("")

    如果您不想使用单独的变量,则可以使用组件的reset() 方法。

    document.getElementById('id2').reset();
    

    上述方法将清除用户输入的值。见以下链接

    http://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.ojComboboxOne.html#reset

    【讨论】:

      【解决方案2】:

      我自己也有类似的问题。我找到了一种解决方法,但没有调查它为什么有效,但是确实有效。

      1. &lt;oj-select-one&gt; 元素的value 属性绑定到observableArray。即使它不是 &lt;oj-select-many&gt; 元素,仍然使用数组。
      2. 重置时,将值设置为空数组,如下所示:self.value([])
      3. 确保您的&lt;oj-select-one&gt; 元素具有placeholder 属性,否则,这将不起作用。

      我很确定这种行为不是故意的,但它对我有用。

      【讨论】:

      • 我已经尝试过了,它会创建一个“空白”选项。行为应该是,它根本不应该创建任何选项。
      • 你可以将你的&lt;oj-select-one&gt; 元素设为disabled。创建一个自定义逻辑,在其中将布尔值绑定到选项数组的长度,例如:selectDisabled = () =&gt; self.value().length 然后将元素的 disabled 属性绑定到该值:&lt;oj-select-one disabled="[[selectDisabled()]]"&gt;
      猜你喜欢
      • 2015-10-18
      • 2018-10-17
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多