Referring to an HTML listbox (multiple select) using JavaScript

I have an HTML listbox in an ASP page in which users can select one or more values, as follows:

<select class='cInput' name="listbox" size=5 multiple STYLE='width:300px;'>

On submit a JavaScript function on the same page is called that referrences that listbox as follows:

lcValue =document.forms[formNo].listbox.options[document.forms[formNo].listbox.selectedIndex].value;

formNo is passed into the function.

If I use "var lcValue = String(trim(Request.Form("listbox")));" in another ASP page using POST and more than one value has been highlighted in the box then lcValue automatically returns a list seperated by commas.

However the JavaScript code "document.forms[formNo].listbox.options[document.forms[formNo].listbox.selectedIndex].value" only returns the first selected item in the listbox.

How can I get lcValue to return a comma seperated list in JavaScript?

Who is Participating?

Improve company productivity with a Business Account.Sign Up

BustaroomsConnect With a Mentor Commented:
function getOptions(sel){
  var opts='';
      if(opts == ''){opts=sel.options[i].value;}
      else{ opts+=',' + sel.options[i].value;}
  return opts;

call it as var IcValue = getOptions(document.forms[formNo].listbox);
Try the following (the last bit removes the trailing comma (,)...

var i
var lcValue
lcValue = ""
for(i=0; i<=document.forms[formNo].listbox.length - 1; i++)
            lcValue = lcValue + document.forms[formNo].listbox.options[i].value + ","
lcValue = lcValue.substr(0,lcValue.length - 1);
kaiwhoeatspieAuthor Commented:
Thanks, I will try your suggestions on Tuesday (weekend then national holiday in UK on Monday). Sorry that I can't test now.
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

kaiwhoeatspieAuthor Commented:
I gave Bustarooms the points because:

a) code is cleaner, function can be reused
b) it only creates a comma seperated list for selected option values, not all of them
ok, why the B?
kaiwhoeatspieAuthor Commented:
Correct me if I am wrong but I think a B should be given for a question that has been answered correctly and to spec. An A is for a question that has been answered "beyond the call of duty", where extra special effort has been made beyond what was required.

Do you think that is not fair?
to me, any help you get on this board, where someone takes the time to help you out is "beyond the call of duty"

Here's what EE thinks about grading
kaiwhoeatspieAuthor Commented:
I stand corrected. An "A" it is. I will contact EE and ask them to upgrade.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.