Page 1 of 1

Error message - can't work it out

Posted: Wed Dec 01, 2004 3:06 am
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 :-)

Posted: Wed Dec 01, 2004 3:30 am
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

Posted: Wed Dec 01, 2004 3:32 am
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.

Posted: Wed Dec 01, 2004 3:45 am
by Chris Corbyn
Thanks guys. Much appreciated :-)

Posted: Wed Dec 01, 2004 3:56 am
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

Posted: Wed Dec 01, 2004 4:07 am
by djot
-
yes sorry d11wtq, I was too fast :)
djot
-

Posted: Wed Dec 01, 2004 4:13 am
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).

Posted: Wed Dec 01, 2004 4:38 am
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 :-)