webForumDet fria alternativet

leta efter en textsträng i en select box

3 svar · 267 visningar · startad av Mattias Nordin

Mattias NordinMedlem sedan dec. 20051 056 inlägg
#1

Hej,

Jag undrar om det finns något fiffigt sätt att default markera en rad i en automatgenererad selectbox.
I denna så finns det 400 rader och jag vill att en viss rad som börjar på tex "Against..." ska vara markerad.
Finns det något smidigt sätt att åstakomma det?

Peter SMedlem sedan dec. 20025 483 inlägg
#2
function setsel(s)
{ var opts = document.forms[0].elements[0].options,
      i    = 0,
      elm  = null;
  while (elm = opts[i++])
    if (new RegExp("^" + s).test(elm.text)){ elm.selected = true; break; }
}

// användning: setsel("Against...")
Erik JuhlinMedlem sedan maj 200010 687 inlägg
#3

Ett tillägg så den inte flippar om man har med regexp nyckelord i strängen.

function setsel(s)
{
	s = s.replace(/(\W)/gi, "\\$1");
	var opts = document.forms[0].elements[0].options,
		i = 0,
		elm = null;
	while (elm = opts[i++])
		if (new RegExp("^" + s).test(elm.text)) { elm.selected = true; break; }
}
Mattias NordinMedlem sedan dec. 20051 056 inlägg
#4

Ni är så bra på det här !

Det fungerar fantastiskt bra. Rätt rad blir automatiskt vald. Men man ser inte att den är vald utan att scrolla ner ganska långt. Kan man påverka scrolllisten så att den hoppar ner till rätt rad?

131 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)