Hola chalchis
Para saber los valores de selection multiple debe hacer un bucle sobre los elementos options, ya que la propiedad selectedIndex te devuelve sólo el índice del primer elemento que encuentre seleccionado.
Código:
<html>
<head>
<title></title>
<script language="JavaScript" type="text/javascript">
<!--
function display_selected(cf) {
var cuantos = 0, msg ="";
var label_optg = ""
for (var ctr = 0; opt = cf.options[ctr]; ctr++) {
if(opt.parentNode.label) label_optg = opt.parentNode.label
if (opt.selected) {
msg += " - " + opt.text + "\n";
cuantos++;
}
}
alert ((cuantos > 1 ? "Ha seleccionado " + cuantos + " elementos":cuantos == 0 ?"No ha seleccionado ningún elemento":"Ha seleccionado " + cuantos + " elemento") +
" en " + label_optg +":\n" + msg )
}
//-->
</script>
</head>
<body>
<form>
<br>
<form name="formulario">
<select name="programas[]" id="programas" multiple class="selectx" style="height:100px" onchange="display_selected(this) ">
<optgroup label="Licenciaturas"><option value="ia">Informática Administrativa</option>
<option value="ci">Comercio Internacional</option>
<option value="cp">Contaduría Pública</option>
<option value="lc">Comunicación y Publicidad</option>
<option value="lm">Mercadotecnia</option>
<option value="ii">Ing. Industrial en Operaciones Internacionales</option>
</optgroup>
</select>
</form>
</body>
</html>
Un saludo