Прежде всего, просто для образовательных целей, важно, чтобы кто-то понимал, что эти периодические события всегда будут запускаться в таком порядке.В таком случае, я считаю, что есть несколько разных способов решения проблемы, и вот что я придумал:
Первый: создать приложение так, чтобы несколько значений, выбранных пользователем (тип или выбранный)не мешай.Например, если приложение автоматически исправляет орфографию, и кто-то, набрав «orphanag» при фокусировке кода, который просматривал наиболее близкое написание, заменит значение на «детский дом», то если кто-то на самом деле выберет «детские дома», то он заменитзначение с выбранным значением.Скорее всего, здесь нет проблем, кроме стремления к чрезмерной оптимизации.
Два: иметь помеченное значение либо в Javascript, либо в HTML-элементе («data-corrected = false»), который существует.На FocusOut установите SetTimeout для ожидания продолжительности времени.Затем, если пользователи выбрали значение, установите ваше помеченное значение равным true.Когда продолжительность истечет, проверьте помеченное значение, если оно истинно, ничего не делайте, иначе используйте значение в поле ввода для чего-либо.