Vstupní pole HTML se po kliknutí nezaměří

Mám problém a nemohu přijít na to, co přesně způsobuje toto chování. Nemohu získat přístup ke svým vstupním polím a textarea v mém HTML formuláři.

Bohužel, JS, HTML a CSS jsou velmi velké, takže to sem opravdu nemůžu zveřejnit.

Může mi někdo říct, co mám hledat při ladění tohoto podivného chování?

AKTUALIZACE

Pokud přesunu kurzor nad input pole Vidím textový kurzor, ale když na něj kliknu, pole se nezaměří. Do pole se mohu dostat stisknutím Tab a když na něj kliknu pravým tlačítkem a pak kliknu na pole, dostanu na něj také fokus.

…a ne, nemají disabled nebo readonly atributy 😉

Odpověď

když na něj kliknu, pole se nezaměří. Do pole se mohu dostat stisknutím „klávesy tab“

Zdá se, že jste zrušili výchozí akci pro stažení myši událost. Vyhledejte v kódu HTML a JS onmousedown handlery a vyhledejte řádek, který zní.

return false;

Tento řádek vám může bránit v zaostření kliknutím.

Re:váš komentář, předpokládám, že nemůžete upravit kód, který přidává tento handler? Pokud můžete, nejjednodušším řešením je jednoduše odstranit return false; prohlášení.

existuje způsob, jak jednoduše přidat funkcionalitu do spouštěče události tím, že jej nepřepíšete?

To záleží na tom, jak je psovod připojen. Pokud je připojen pomocí tradiční metody registrace, např. element.onmousedown , pak pro něj můžete vytvořit obal:

var oldFunc = element.onmousedown;
element.onmousedown = function (evt) {
    oldFunc.call(this, evt || window.event);
}

Protože tento „obal“ nevrací hodnotu false , nezruší výchozí akci (zaměření) pro prvek. Pokud je vaše událost připojena pomocí pokročilé metody registrace, jako je addEventListener nebo attachEvent pak byste mohli pouze odstranit obslužnou rutinu události pomocí názvu funkce/odkazu a znovu ji připojit s zabalenou funkcí podobnou výše uvedené. Pokud se jedná o anonymní funkci, která je přidána a nemůžete na ni získat odkaz, pak jediným řešením by bylo připojit další obslužnou rutinu události a zaměřit prvek ručně pomocí element.focus() metoda.