Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 18932
  • Last Modified:

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?

0
kaiwhoeatspie
Asked:
kaiwhoeatspie
  • 4
  • 3
1 Solution
 
Lord_McFlyCommented:
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);
0
 
BustaroomsCommented:
function getOptions(sel){
  var opts='';
  for(i=0;i<sel.length;i++){
    if(sel.options[i].selected){
      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);
0
 
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.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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
0
 
BustaroomsCommented:
ok, why the B?
0
 
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?
0
 
BustaroomsCommented:
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
http://www.experts-exchange.com/help.jsp#hi73
0
 
kaiwhoeatspieAuthor Commented:
I stand corrected. An "A" it is. I will contact EE and ask them to upgrade.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now