webForumDet fria alternativet

Sätta SelectedIndex

2 svar · 267 visningar · startad av skyman

skymanMedlem sedan juli 20011 347 inlägg
#1

Jag kan inte få till det...
Antingen är jag dum eller så vet jag för lite...

Problem nr 1
Detta är mitt forumulär:

<select name="MySelect">
<option value="kalle">Kalle Svensson</option>
<option value="nisse">Nisse Svensson</option>
<option value="lisa">Lisa Svensson</option>
</select>

Och mitt script, som inte funkar:

[i]document.form1.MySelect.selectedIndex.value="kalle";[/i]

Jag vill selecta den med value:t "kalle". Hur gör jag det. Det funkar om jag skiver tex:

document.form1.MySelect.selectedIndex=1;

men jag vill inte andvända mig av det "indexet"...

Problem nr 2
När väl detta funkar så har jag i den select:en en onChange-procedur, och den körs inte då jag lyckats med att köra med:

document.form1.MySelect.selectedIndex=1;

Kan man anropa en onChange-procedur också i samma veva?

Tacksam för hjälp!
/skyman

/r det heter value i option, inte name...

JojoxxMedlem sedan juni 20004 306 inlägg
#2

Problem nr 1
I en selectlista kan du inte sätta ett value (den kan till och med ha flera om det är en multiple select) utan man måste tala om vilket/vilka val som är markerade.

<script type="text/javascript">
function selectByValue(obj,value){
	for(var n=0;n<obj.length;n++){ if(obj[n].value==value){ obj[n].selected=true; return null; } }
}
selectByValue(document.form1.MySelect,"kalle");
</script>

Problem nr 2
Det är helt riktigt att onChange inte triggas av scriptade förändringar i formuläret. Men det behövs inte eftersom du på raden efter selectByValue(...) kan göra vad du vill.

skymanMedlem sedan juli 20011 347 inlägg
#3

Kanon!
Tack så mycket :)

Genererad på 394 ms · cache AV · v20260730165559-full.f96bc7eb