C'è un pochetto di confusione nello script che hai scritto.
Forse potrebbe andarti meglio con il seguente script.
codice:
<html>
<head>
<script type="text/javascript">
function cap(citta) {
codcap = new Array();
if (citta=="Roma") { codcap=["00020", "00030", "00040"]; }
if (citta=="Catania") { codcap=["95020", "95030", "95040"]; }
stringa="<select 'cap'>";
num=codcap.length;
for (i=0; i<num; i++) {
stringa=stringa+"<option value='"+codcap[i]+"'>"+codcap[i]+"</option>";
}
stringa=stringa+"</select>";
document.getElementById("divcap").innerHTML=stringa;
}
</script>
</head>
<body onload="cap('');">
<form name="mioform">
<select "city" onchange="cap(this.value);">
<option value="Roma">Roma</option>
<option value="Catania">Catania</option>
</select>
<div id="divcap"></div>
</form>
</body>