0

我想在单击组合框时突出显示文本。这是 JQuery 示例 http://jsfiddle.net/Ilmv/5zWad/

我想在我的组合框上做同样的事情,但它不起作用。Oracle jet 在运行时扩展其组件以添加自己的类。所以,我很困惑我需要申请哪个 id 或 class。

这是我的可编辑组合框。

 <input id="combobox" class="seriescombobox" list="series"
     data-bind="ojComponent:{component:'ojCombobox',value:seriesValue,
               optionChange:LoadSerieses(), 
               rootAttributes: {style:'min-width:32em'}}"/>
     <datalist id="series">
           <!-- ko foreach: serieses -->
               <option data-bind ="value:value,text:label">
               </option>
           <!-- /ko -->
     </datalist>

这是我用来突出显示文本的 JQuery 代码。

      $(".oj-combobox-input").focus();
      $(".oj-combobox-input").select();

我尝试了所有可能的 id 和类,但没有运气。请帮忙。谢谢。

4

2 回答 2

0

optionChange使用属性将您的组合框连接到 JavaScript 函数。我注意到,即使您调用 element.select,ojet 也会刷新组合并且该值被取消选择。为了克服这个问题,在你的 JS 回调中编写选择代码,以便它在稍微延迟后执行,你可以使用 setTimeout。不是最好的方法,但这会奏效。

valueChangeHandler = function(event) {
            setTimeout(function() { $('#oj-combobox-input-combobox_1')[0].select()}, 200);
        };

请注意,我在这里使用 id 来获取文本组件。在你的情况下,id 是"oj-combobox-input-" + id of the combobox

于 2018-03-06T07:12:34.653 回答
0

这终于奏效了。

这将使文本在单击组合框时突出显示。

$(".oj-combobox-input").attr('onclick','this.select()');

一旦你鼠标向上焦点就会消失。下面的行是保持文本突出显示。

$(".oj-combobox-input").attr('onmouseup','return false');
于 2018-05-24T09:39:24.903 回答