Codigo nao Funciona em js :S

Pikanso

Membro
/
* This script and many more are available free online at
The JavaScript Source :: http://javascript.internet.com
Created by: Michael J. Damato :: http://developing.damato.net/ */

// State lists
var states = new Array();

states['Porto'] = new Array('Amarante','Baião','Felgueiras','Gondomar','Lousada','Maia','Marco Canaveses','Matosinhos','Paços de Ferreira','Paredes','Penafiel','Porto','Póvoa de Varzim','Santo Tirso','Valongo','Vila do Conde','Vila Nova de Gaia','Trofa');
states['Aveiro'] = new Array('Águeda','Albergaria-a-Velha','Anadia','Arouca','Aveiro','Castelo de Paiva','Espinho','Estarreja','Santa Maria da Feira','Ílhavo','Mealhada','Murtosa','Oliveira de Azeméis','Oliveira do Bairro','Ovar','São João da Madeira','Sever de Vouga','Vagos','Vale de Cambra');
states['Coimbra'] = new Array('Arganil','Cantanhede','Coimbra','Condeixa-a-Nova','Figueira da Foz','Góis','Lousã','Mira','Miranda do Corvo','Montemor-o-Velho','Oliveira do Hospital','Pampilhosa da Serra','Penacova','Penela','Soure','Tábua','Vila Nova de Poiares');


// City lists
var cities = new Array();

cities['Porto'] = new Array();
cities['Porto']['Gondomar'] = new Array('Baguin do Monte','Covelo','Fânzeres','Foz de Sousa','Gondomar(São Cosme)','Jovim','Lomba','Medas','Melres','Rio Tinto','São Pedro da Cova','Valbom');
cities['Porto']['Maia'] = new Array('Águas Santas','Avioso(Sao Pedro)','Avioso(Santa Maria)','Barca','Folgosa','Gemude','Gondim','Gueifães','Maia','Milheirós','Moreira','Nogueira','Pedrouços','São Pedro Fins','Silva Escura','Vermoim','Vila Nova da Telha');
cities['Porto']['Matosinhos'] = new Array('Custóias','Guifões','Lavra','Leça da Palmeira','Leça do Bailio','Matosinhos','Perafita','São Mamede de Infesta','Santa Cruz do Bispo','Senhora da Hora');

cities['Mexico'] = new Array();
cities['Mexico']['Baja California'] = new Array('Tijauna','Mexicali');
cities['Mexico']['Chihuahua'] = new Array('Ciudad Juárez','Chihuahua');
cities['Mexico']['Jalisco'] = new Array('Guadalajara','Chapala');

cities['United States'] = new Array();
cities['United States']['California'] = new Array('Los Angeles','San Francisco');
cities['United States']['Florida'] = new Array('Miami','Orlando');
cities['United States']['New York'] = new Array('Buffalo','new York');


function setStates() {
cntrySel = document.getElementById('country');
stateList = states[cntrySel.value];
changeSelect('state', stateList, stateList);
setCities();
}

function setCities() {
cntrySel = document.getElementById('country');
stateSel = document.getElementById('state');
cityList = cities[cntrySel.value][stateSel.value];
changeSelect('city', cityList, cityList);
}

function changeSelect(fieldID, newOptions, newValues) {
selectField = document.getElementById(fieldID);
selectField.options.length = 0;
for (i=0; i<newOptions.length; i++) {
selectField.options[selectField.length] = new Option(newOptions, newValues);
}
}

// Multiple onload function created by: Simon Willison
// http://simonwillison.net/2004/May/26/addLoadEvent/
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}

addLoadEvent(function() {
setStates();
});


<form name="test" method="POST" action="processingpage.php">
<table>
<tr>
<td style="text-align: left;">Country:</td>
<td style="text-align: left;">
<select name="country" id="country" onchange="setStates();">
<option value="Canada">Porto</option>
<option value="Mexico">Mexico</option>
<option value="United States">United States</option>
</select>
</td>
</tr><tr>
<td style="text-align: left;">State:</td>
<td style="text-align: left;">
<select name="state" id="state" onchange="setCities();">
<option value="">Please select a Country</option>
</select>
</td>
</tr><tr>
<td style="text-align: left;">City:</td>
<td style="text-align: left;">
<select name="city" id="city">
<option value="">Please select a Country</option>
</select>
</td>
</tr>
</table>
</form>

Isto é o form para o codigo


Alguem me pode dizer o que esta mal ? :S
 
Última edição:
na tua drop down com id = "country" tens 3 paises e o único que te existe na Array states está com o campo values errado:
ie: <option value="Canada">Porto</option> devias ter <option value="Porto">Porto</option>

com isso já te deve funcionar o porto, para as cidades que tens do porto na array
 
Back
Topo