Поле ввода совпадения фокуса с jquery - PullRequest
2 голосов
/ 06 апреля 2020

Я пытаюсь сфокусировать поле ввода в div, совпадающем с другим входом.

Мне нужно пропустить эталонный ввод (первое значение ввода). Тогда мой код:

$("#btnSearch").on('click',function() {
    input = document.getElementsByTagName('input');
    match = 0;
    for (i=0;i<input.length;i++) {
        if(input[i].value == $("#btnSearch > input").val()) {
            match = 1;
        }else if (match==1) {
            input[i].focus();
            break;
        }
    }
});

Но с этим кодом я фокусирую следующий ввод (второй ввод). Не работает Есть идеи по улучшению моего кода?

1 Ответ

3 голосов
/ 06 апреля 2020

Вы должны поставить фокус if, который сначала проверяет match как

Вместо

if(input[i].value == $("#btnSearch > input").val()) {
     match = 1;
}else if (match==1) {
    input[i].focus();
    break;
}

Вы должны написать

if(match==1) {
        input[i].focus();
        break; 
}else if (input[i].value == $("#btnSearch > input").val()) {
    match = 1;   
}

Объяснение:

Что делает ваш код

1) Проверяет, соответствует ли условие для ввода ссылки, устанавливает 1, как оно истинно,

2) Проверяет условие для ввода, устанавливает соответствует 1, как оно истинно

3) Сначала, если ложно, но совпадение истинно, поэтому фокусируется на следующем вводе

Таким образом, мы должны сначала проверить соответствие, чтобы мы получили сосредоточиться на фактическом вводе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...