Как программно запустить событие фокуса

Как я могу вызвать событие focusout программно, используя только JavaScript, а не jQuery?

Например, в следующем коде идея заключается в том, что он должен выдавать предупреждение "Hello, world!" из-за вызова функции focusout () (или аналогичной вызывающей события функции) (focusout () не является функцией JS, но это идея).

function helloWorld () {
  alert('Hello, world!');
}

document.getElementsByTagName( 'form' )[0].addEventListener( 'focusout', function( eventObj ) {
  helloWorld();
});

var event = new Event('focusout');
document.getElementsByTagName( 'form' )[0].dispatchEvent(event);       
<form action="" method="post" id="sampleForm">
 <input type="text" id="linkURL" name="linkURL" placeholder="Link URL"><br>
  <input type="submit" name="action" value="Submit">
</form>

2 ответа

Решение

Вы можете сделать это с помощью Event конструктор.

function helloWorld () {
  alert('Hello, world!');           
}

var event = new Event('focusout');
document.getElementsByTagName( 'form' )[0].dispatchEvent(event);  

document.getElementsByTagName( 'form' )[0].addEventListener( 'focusout', function( eventObj ) {
  helloWorld();
});
<form action="" method="post" id="sampleForm">
 <input type="text" id="linkURL" name="linkURL" placeholder="Link URL"><br>
  <input type="submit" name="action" value="Submit">
</form>

Также мы можем добиться этого с помощью свойства hideFocus.

Бывший:

document.getElementById('linkURL').hideFocus;

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