S skyman Medlem sedan juli 2001 2 450 inlägg Frågan 18 juni 2004 14:05 #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...
J Jojoxx Medlem sedan juni 2000 4 308 inlägg 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.