webForumDet fria alternativet

Smärre bekymmer med tabb och focus i FF.

JavaScript

3 svar · 318 visningar · startad av Engine^

Medlem sedan dec. 20003 887 inlägg
Frågan#1

Jag låter en funktion kontrollera antalet tecken i en textarea. Den anropas via onblur-eventet.

Nu vill jag att focus ska sättas på elementet som anropade funktionen, men det vill sig inte riktigt.

function checkLength( strID, intMaxLength )
{
  var intLength;

  intLength = document.getElementById( strID ).value.length;

  if( intLength > intMaxLength )
  {
    alert( ... );

    [b]document.getElementById( strID ).focus();[/b]
  }
}

<textarea ... id="txtPlutt" onblur="checkLength( this.id, 2000 );">..</textarea>

Den markerade raden har ingen effekt i FF, men fungerar som jag hade tänkt i IE.
Vad är det som är fel?

Medlem sedan nov. 200013 890 inlägg
#2

Nu är jag inte någon FF-expert men testa med onfocus() istället.

Medlem sedan aug. 20039 340 inlägg
#3

Jag skulle tro att denna funktion är inaktiverad i onblur-eventet för att förhindra att en sida hindrar användaren från att låta fokus försvinna från ett fält.
Nej, Tor, det fungerar inte! :)

Medlem sedan dec. 20003 887 inlägg
#4

Tackar för tipset nitro.

Tydligen är det som så att Gecko-motorn inte stödjer att man sätter fokus till det objekt som just tappat fokus.

Workaround

if( [i]gecko[/i] )
  setTimeout( "document.getElementById( [i]objektID[/i] ).focus()",0);
259 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)