Перейти к указанному c индексу табуляции при выходе из другого ввода с помощью jquery - PullRequest
0 голосов
/ 13 января 2020

У меня есть страница, которая генерируется динамически, и все tabindex предустановлены. То, что я пытаюсь сделать, это установить фокус на указанном c tabindex, когда другой вход теряет фокус. Например, если у меня есть <input tabindex=119>, а другой с <input tabindex=16>, как я могу добраться до tabindex = 16, когда 119 теряет фокус? Я пробовал

$(zip).keydown(function(event) {
            if (event.which == 9) {
                event.preventDefault();
                //$('#DublinTheme_wt213_block_wtMainContent_WebPatterns_wt50_block_wtPanelContent_WebPatterns_wt191_block_wtColumn1_wtVendors_EmailAddress').focus();
                $('input').find("[tabindex=16]").focus();
            }
        });

, где zip - идентификатор поля ввода tabindex = 119. Это ничего не сделало для меня. Я также попытался просто установить фокус на идентификатор нужного мне ввода: $('#DublinTheme_wt213_block_wtMainContent_WebPatterns_wt50_block_wtPanelContent_WebPatterns_wt191_block_wtColumn1_wtVendors_EmailAddress').focus(); поставить вместо $('input').find("[tabindex=16]").focus(); снова, это не установило фокус на правильный ввод.

Любая помощь здесь будет принята с благодарностью.

1 Ответ

1 голос
/ 13 января 2020

Вы не должны помещать сгенерированные идентификаторы Outsystems в ваш скрипт. Создайте новое выражение, как в примере ниже. Событие размытия будет выполнено, когда элемент потеряет фокус.

Очевидно, замените yourOutsystemsTabIndex199Element и yourOutsystemsTabIndex16Element на имя ваших входных данных.

Также установите выражение, чтобы оно не escape-контент.

"<script>
$(document).ready(function(){
  $('#" + yourOutsystemsTabIndex199Element.id + "').on('blur', function(){
    $('#" + yourOutsystemsTabIndex16Element.id + "').focus();
  });
});
</script>"

enter image description here

...