Как имитировать щелчок, чтобы текущий ввод потерял фокус с помощью JavaScript

У меня есть ввод, который в некоторых моментах оказывается в центре внимания. Если пользователь щелкает «фон» страницы, ввод теряет фокус. Я пытался смоделировать щелчок по фону с помощью следующего кода, но это не сработало (вы заметите, что вход все еще находится в фокусе). Есть ли предложения о том, как написать код, имитирующий щелчок по «фону» страницы?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en">
    <head>
        <meta http-equiv = "Content-Type" content = "text/html; charset=utf-8"/>
        <script type = "text/javascript" src = "http://yui.yahooapis.com/2.6.0/build/yahoo/yahoo-min.js" ></script>
        <script type = "text/javascript" src = "http://yui.yahooapis.com/2.6.0/build/event/event-min.js" ></script>
        <script type = "text/javascript">
            YAHOO.util.Event.onDOMReady(function() {
                document.getElementById("input").focus();    
                document.getElementById("main").focus();    
            });
        </script>
    </head>
    <body>
        <div id = "main">
            <form action = "/">
                <p>
                    <input type = "text" id = "input"/>
                </p>
            </form>
        </div>
    </body>
</html>
Поведение ключевого слова "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) для оценки ваших знаний,...
8
0
22 879
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я бы предположил, что использование blur() поможет:

<script type = "text/javascript">
    YAHOO.util.Event.onDOMReady(function() {
        document.getElementById("input").focus();    
        document.getElementById("input").blur();    
    });
</script>

Отличный материал, спасибо Паоло. Надо было подумать :).

avernet 23.10.2008 03:04

Попробуйте использовать событие blur. Если вы используете jQuery, есть метод, который вы можете вызвать для объекта DOM, чтобы вызвать это событие. Метод blur() также должен работать без jQuery.

http://docs.jquery.com/Events/blur

ой, я не заметил отсылки к его сценариям. Однако метод blur () будет работать независимо от фреймворка.

Dan Herbert 21.10.2008 05:43

Ваша идея верна, но есть небольшая проблема.

document.getElementById("main").focus();

<div id = "main">

как показано в вашем коде, на самом деле div HTMLElement не имеет метода фокуса.

поэтому вы можете вызывать другие элементы, у которых есть метод фокуса, или вызывать blur() на элементе ввода

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