Сдвиг фокуса () - Угловой 5

У меня есть следующий код в Angular 5:

<select class = "abc" (change) = "items($event)"  required>

            <option value = "1">1</option>
              <option value = "2">2</option>
                <option value = "3">3</option>
                  <option value = "4">4</option>
                    <option value = "5">5</option>
          </select>

Когда пользователь выбирает какую-либо конкретную из вышеперечисленных опций, фокус переходит на выбранную опцию. Я пытаюсь вывести любой выбранный параметр из фокуса (после того, как пользователь выберет любой вариант), и хотел бы сместить фокус на другой элемент DOM (при необходимости). Я попробовал getElementById with focus(), но он, похоже, не работает.

items(event)
  {
    ABC Code;
    Shifting focus code goes here;
  }
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
783
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Предположим, ваш другой элемент таков:

<input type = "text" #inputText>

Тогда вы можете попробовать это:

<select class = "abc" (change) = "inputText.focus()"  required>
    <option value = "1">1</option>
    <option value = "2">2</option>
    <option value = "3">3</option>
    <option value = "4">4</option>
    <option value = "5">5</option>
</select>

Пробовал, но фокус не смещается

Snk 29.05.2018 14:13

Это стандартный Javascript, и, как видите, он работает, если у вас есть ошибка, вам нужно предоставить песочницу, воспроизводящую указанную ошибку. Псевдокода недостаточно для определения проблемы.

function focusInput(value) {
  document.querySelector('input#input-' + value).focus();
}
<select onchange = "focusInput(this.value)" palceholder = "select an input to focus">
  <option value = "0">Input 0</option>
  <option value = "1">Input 1</option>
  <option value = "2">Input 2</option>
</select>

<input type = "text" id = "input-0" placeholder = "Input 0" style = "display: block;">
<input type = "text" id = "input-1" placeholder = "Input 1" style = "display: block;">
<input type = "text" id = "input-2" placeholder = "Input 2" style = "display: block;">

Это нормально. если мы используем Селектор запросов в угловом приложении?

Chellappan வ 29.05.2018 14:11

Для фокусировки элемента да, это так. Но ничто не мешает вам использовать переменную шаблона, Renderer2 или любой другой способ, предоставляемый Angular. Я просто показываю, что этот простой код работает на любом устройстве.

user4676340 29.05.2018 14:11
Ответ принят как подходящий

Вот рабочее решение в Angular с использованием Renderer2

HTML:

<select class = "abc" (change) = "change()"  required>
    <option value = "1">1</option>
    <option value = "2">2</option>
    <option value = "3">3</option>
    <option value = "4">4</option>
    <option value = "5">5</option>
</select>


<input type = "text" id = "myInput">
<input type = "text">

Составная часть:

import { Component, Renderer2 } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {

  constructor(public renderer2: Renderer2){

  }

  change(){
     let onElement = this.renderer2.selectRootElement('#myInput');
 onElement.focus();
  }

 }

Вот рабочий DEMO

@Sanket Sawant, пожалуйста, проверьте мой ответ

Sravan 29.05.2018 14:42

Привет, Шраван, спасибо за рабочую демонстрацию. Мне действительно нужно переключить внимание на всю DOM, так как я хочу, чтобы scroll bar работал на веб-странице. Что делать в таком случае?

Snk 29.05.2018 16:04

@SanketSawantm, значит, тебя не достало

Sravan 30.05.2018 07:56

Например: когда мы перезагружаем любую веб-страницу, где по умолчанию находится focus ()? На каком элементе? Аналогично, что мне делать, чтобы получить этот фокус по умолчанию () на всей веб-странице?

Snk 30.05.2018 10:50

после того, как выбран элемент выбора, фокус по умолчанию перейдет в обычное состояние.

Sravan 30.05.2018 11:14

Другие вопросы по теме