在 Oracle jet 中单击时突出显示组合框文本

Highlight combobox text on click in Oracle jet

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

我想在我的组合框上做同样的事情,但它不起作用。 Oracle jet 在 运行 时间扩展了它们的组件以添加它们自己的 classes。所以,我很困惑我需要申请哪个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 和 classes,但没有成功。 请帮忙。 谢谢

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

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

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

终于成功了。

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

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

一旦您将鼠标移开,焦点就会消失。下面一行是为了让文本高亮。

$(".oj-combobox-input").attr('onmouseup','return false');