Select an Array, to Display

T

Tyrone Slothrop

It is a familiar story. It works in Firefox, but not in IE.

I want to dynamically populate a select box with an array of values
based upon the value selected from another select. The arrays are
defined when the page is loaded.

Assuming that the arrays are name a, b. and c:

<select name="someArray">
<option onclick="selArr(a);" value="a">A</option>
<option onclick="selArr(b);" value="b">B</option>
<option onclick="selArr(c);" value="c">C</option>
</select>

function selArr(whichArr) {
var optStr;
var cnt = whichArr.length;
for (var i=0; i<cnt; i++) {
optStr += '<option value="'+whichArr.k+'
'+whichArr.v+'">'+whichArr.k+' '+whichArr.v+'</option>\n';
}
document.getElementById('sel2').innerHTML = optStr;
}

I have run into this before where IE ignores any calls to a function
from an option value. However, the problem is if I call the function
from the select tag:
<select name="someArray" onchange="selArr[this.value);">
this.value is treated not as the defined array but as a var value, as
if is enclosed by quotes.

Any ideas how to get around this?

TIA!
 
M

mick white

Tyrone said:
It is a familiar story. It works in Firefox, but not in IE.

I want to dynamically populate a select box with an array of values
based upon the value selected from another select. The arrays are
defined when the page is loaded.

Assuming that the arrays are name a, b. and c:

<select name="someArray">
<option onclick="selArr(a);" value="a">A</option>
<option onclick="selArr(b);" value="b">B</option>
<option onclick="selArr(c);" value="c">C</option>
</select>

function selArr(whichArr) {
var optStr;
var cnt = whichArr.length;
for (var i=0; i<cnt; i++) {


function selArr(whichArr){
var cnt = whichArr.length,
sel=document.forms[0].sel2.options,sel.length=0,i;
for(i=0;i<cnt;i++){
sel=new Option(whichArr,whichArr)
}
}
select name="someArray" onchge="selArr[this.value);">
this.value is treated not as the defined array but as a var value, as
if is enclosed by quotes.

Any ideas how to get around this?

onchange="selArr(window[this[this.selectedindex].value]);
// provided the arrays are global in scope

[...]
Mick
 
T

Tyrone Slothrop

Tyrone said:
It is a familiar story. It works in Firefox, but not in IE.

I want to dynamically populate a select box with an array of values
based upon the value selected from another select. The arrays are
defined when the page is loaded.

Assuming that the arrays are name a, b. and c:

<select name="someArray">
<option onclick="selArr(a);" value="a">A</option>
<option onclick="selArr(b);" value="b">B</option>
<option onclick="selArr(c);" value="c">C</option>
</select>

function selArr(whichArr) {
var optStr;
var cnt = whichArr.length;
for (var i=0; i<cnt; i++) {


function selArr(whichArr){
var cnt = whichArr.length,
sel=document.forms[0].sel2.options,sel.length=0,i;
for(i=0;i<cnt;i++){
sel=new Option(whichArr,whichArr)
}
}
select name="someArray" onchge="selArr[this.value);">
this.value is treated not as the defined array but as a var value, as
if is enclosed by quotes.

Any ideas how to get around this?

onchange="selArr(window[this[this.selectedindex].value]);
// provided the arrays are global in scope

[...]
Mick


Thanks Mick!

I figured out how to do a lot of this on my own, though the onChange
part looks like what I need to make it completely dynamic.

I have been coding in PHP, C and Perl for years but JavaScript still
makes me nuts at times. ;-)

Thanks again!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,431
Messages
2,571,678
Members
48,796
Latest member
Greg L.

Latest Threads

Top