【问题标题】:Highlight combobox text on click in Oracle jet在 Oracle jet 中单击时突出显示组合框文本
【发布时间】:2018-03-06 05:22:55
【问题描述】:

我想在单击组合框时突出显示文本。 这是 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 和类,但没有运气。 请帮忙。 谢谢。

【问题讨论】:

  • 可以用 oracle jet 组合框示例生成小提琴吗?
  • 您能否在 onclick 事件中将组合框连接到您的 JS 函数?我的意思是,$(".oj-combobox-input").focus() 是否被调用?

标签: jquery oracle-jet


【解决方案1】:

使用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

【讨论】:

    【解决方案2】:

    终于成功了。

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

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

    一旦您将鼠标移开,焦点就会消失。下面的行是保持文本突出显示。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 2014-03-30
      • 1970-01-01
      • 2012-03-28
      • 2017-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多