[SOLVED] Error message - can't work it out

JavaScript and client side scripting.

Moderator: General Moderators

Post Reply
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Error message - can't work it out

Post by Chris Corbyn »

Code: Select all

<html>
<head>
<script language="JavaScript">
<!--
function updateForm1(el) &#123;
	document.getElementById('mccmnc').value = el.value
	if (mncArray&#1111;el.value]) &#123;
		var mncOptionsList = '<select name="mnc" id="mnc" onChange="updateForm2(this)">'
		mncOptionsList += '<option value="dummy">- Select Network Provider -</option>'
		for (i=0; i<mncArray.length; i++) &#123;
			netArray = mncArray&#1111;el.value]&#1111;i].split("#") //Line 11
			var net = netArray&#1111;0]
			var mnc = netArray&#1111;1]
			mncOptionsList += '<option value="'+netArray&#1111;1]+'">'+netArray&#1111;0]+'</option>'
			document.getElementById('mncspan').innerHTML = mncOptionsList
		&#125;
	&#125; else &#123;
		document.getElementById('mncspan').innerHTML = '<select name="mnc" id="mnc"><option value="dummy">- Select Network Provider -</option></select>'
	&#125;
&#125;

function updateForm2(el) &#123;
	document.getElementById('mccmnc').value = document.getElementById('mcc').value+el.value
&#125;

mncArray = new Array()
	//Albania
	mncArray&#1111;"276"] = new Array()
		mncArray&#1111;"276"]&#1111;0] = "Albanian Mobile Comms#01"
	// United Kingdom
	mncArray&#1111;"234"] = new Array ()
		mncArray&#1111;"234"]&#1111;0] = "Virgin#00"
		mncArray&#1111;"234"]&#1111;1] = "Virgin 2003 Spec#00001"
		mncArray&#1111;"234"]&#1111;2] = "O2/Bt Cellnet#10"
		mncArray&#1111;"234"]&#1111;3] = "Vodafone#15"
		mncArray&#1111;"234"]&#1111;4] = "T-Mobile/1-2-1#30"
		mncArray&#1111;"234"]&#1111;5] = "Orange#33"
		mncArray&#1111;"234"]&#1111;6] = "Jersey Telecom GSM#50"
		mncArray&#1111;"234"]&#1111;7] = "Guernsey Telecoms GSM#55"
		mncArray&#1111;"234"]&#1111;8] = "Manx Telecom Pronto GSM#58"
// -->
</script>
</head>
<body>
<form name="details">
<select name="mcc" id="mcc" onChange="updateForm1(this)">
	<option value="dummy">- Select Country -</option>
	<option value="276">Albania</option>
	<option value="603">Algeria</option>
	<option value="213">Andorra</option>
	<option value="283">Armenia</option>
	<option value="505">Australia</option>
	<option value="232">Austria</option>
	<option value="400">Azerbaijan</option>
	<option value="426">Bahrain</option>
	<option value="470">Bangladesh</option>
	<option value="206">Belgium</option>
	<option value="218">Bosnia Herzegovina</option>
	<option value="652">Botswana</option>
	<option value="528">Brunei Darussalam</option>
	<option value="284">Bulgaraia</option>
	<option value="724">Brazil</option>
	<option value="456">Cambodia</option>
	<option value="624">Cameroon</option>
	<option value="302">Canada</option>
	<option value="625">Cape Verde</option>
	<option value="730">Chile</option>
	<option value="460">China</option>
	<option value="612">Cote d'Ivoire</option>
	<option value="219">Croatia</option>
	<option value="280">Cyprus</option>
	<option value="230">Czech Republic</option>
	<option value="238">Denmark</option>
	<option value="602">Egypt</option>
	<option value="248">Estonia</option>
	<option value="636">Ethiopia</option>
	<option value="542">Fiji</option>
	<option value="244">Finland</option>
	<option value="208">France</option>
	<option value="547">French Polynesia</option>
	<option value="340">French West Indies</option>
	<option value="282">Georgia</option>
	<option value="262">Germany</option>
	<option value="620">Ghana</option>
	<option value="266">Gibraltar</option>
	<option value="202">Greece</option>
	<option value="290">Greenland</option>
	<option value="611">Guinea</option>
	<option value="454">Hong Kong</option>
	<option value="216">Hungary</option>
	<option value="274">Iceland</option>
	<option value="404">India</option>
	<option value="510">Indonesia</option>
	<option value="432">Iran</option>
	<option value="418">Iraq</option>
	<option value="272">Ireland</option>
	<option value="425">Israel</option>
	<option value="222">Italy</option>
	<option value="416">Jordan</option>
	<option value="419">Kuwait</option>
	<option value="437">Kyrgyz Republic</option>
	<option value="457">Lao</option>
	<option value="247">Latvia</option>
	<option value="415">Lebanon</option>
	<option value="651">Lesotho</option>
	<option value="618">Liberia</option>
	<option value="246">Lithuania</option>
	<option value="270">Luxembourg</option>
	<option value="455">Macau</option>
	<option value="294">Macedonia</option>
	<option value="646">Madagascar</option>
	<option value="650">Malawi</option>
	<option value="502">Malaysia</option>
	<option value="278">Malta</option>
	<option value="617">Mauritius</option>
	<option value="259">Moldova</option>
	<option value="604">Morocco</option>
	<option value="634">Mozambique</option>
	<option value="649">Namibia</option>
	<option value="204">Netherlands</option>
	<option value="546">New Caledonia</option>
	<option value="530">New Zealand</option>
	<option value="242">Norway</option>
	<option value="422">Oman</option>
	<option value="410">Pakistan</option>
	<option value="310">Papua New Guinea</option>
	<option value="515">Philippines</option>
	<option value="260">Poland</option>
	<option value="268">Portugal</option>
	<option value="427">Qatar</option>
	<option value="647">Reunion</option>
	<option value="226">Romania</option>
	<option value="250">Russia</option>
	<option value="635">Rwanda</option>
	<option value="420">Saudi Arabia</option>
	<option value="608">Senegal</option>
	<option value="633">Seychelles</option>
	<option value="525">Singapore</option>
	<option value="231">Slovak Republic</option>
	<option value="293">Slovenia</option>
	<option value="655">South Africa</option>
	<option value="214">Spain</option>
	<option value="413">Sri Lanka</option>
	<option value="634">Sudan</option>
	<option value="240">Sweden</option>
	<option value="228">Switzerland</option>
	<option value="417">Syria</option>
	<option value="466">Taiwan</option>
	<option value="640">Tanzania</option>
	<option value="520">Thailand</option>
	<option value="615">Togo</option>
	<option value="605">Tunisia</option>
	<option value="286">Turkey</option>
	<option value="310">USA</option>
	<option value="641">Uganda</option>
	<option value="255">Ukraine</option>
	<option value="424">United Arab Emirates</option>
	<option value="234">United Kingdom</option>
	<option value="434">Uzbekistan</option>
	<option value="734">Venezuela</option>
	<option value="452">Vietnam</option>
	<option value="220">Yugoslavia</option>
	<option value="645">Zambia</option>
	<option value="648">Zimbabwe</option>	
</select>
<p>
<span id="mncspan">
	<select name="mnc" id="mnc">
		<option value="dummy">- Select Network Provider -</option>
	</select>
</span>
<p>
<input type="text" name="mccmnc" id="mccmnc" value="" size="8">
</form>

</body>
</html>
Getting an error on line 11 "mncArray[...][...] is null or not an object" when I choose the option for Albania in the drop down.

I can't see what's causing it. Any help much appreciated :-)
djot
Forum Contributor
Posts: 313
Joined: Wed Jan 14, 2004 10:21 am
Location: planet earth
Contact:

Post by djot »

-
Hi,

"document.getElementById('mccmnc').value = el.value"

What about the other way round? And why "el.value", shouldn't it be just "el"?

Code: Select all

el = document.getElementById('mccmnc').value
djot
User avatar
patrikG
DevNet Master
Posts: 4235
Joined: Thu Aug 15, 2002 5:53 am
Location: Sussex, UK

Post by patrikG »

d11wtq, I'd suggest you use Firefox to deal with Javascript errors. Its debugging facilities are so much more powerful than IE's.
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

Thanks guys. Much appreciated :-)
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

djot, The purpose of

Code: Select all

document.getElementById('mccmnc').value = el.value

was simply to write the value of the selected option into the text box at the bottom of the form. Changing it to what you suggested would prevent that from working and would not correct the error.

I've also modified the code a bit to be more W3C compliant using el.options[el.selectedIndex].value instead of el.value but I'm still getting the error.

Thanks anyway
djot
Forum Contributor
Posts: 313
Joined: Wed Jan 14, 2004 10:21 am
Location: planet earth
Contact:

Post by djot »

-
yes sorry d11wtq, I was too fast :)
djot
-
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

It's not exclusive to Albania neither. Selecting United kingdom does it too. NB: Those are the only two options I have created the arrays for so it basically does it when any option is selected. The function seems to work as it should do but I'm just getting the annoying error showing up in the code which I'd like to debug.

I'm at work at the moment on a locked down PC which just uses IE so unfortunately I cannot use a mozilla browser (wish I could - I'm very pro Mozilla).
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

Sussed it.... Can't believe I missed it when it was staring me in the face.

Code: Select all

for (i=0; i<mncArray.length; i++) &#123;
what's that?

changed it to

Code: Select all

for (i=0; i<mncArray&#1111;el.options&#1111;el.selectedIndex].value].length; i++) &#123;
It was looping over the wrong number of array elements :-)
Post Reply