Javascript and DropDownLists question

G

Guest

I have three dropdownlists in an AJAX UpdatePanel and I need to return the
selected index for two of them; the problem is that I'm only able to return
the selected index for the first dropdownlist of the three and it is the one
that I don't need. The dropdownlists are named, in order, ddlEntityType,
ddlEntityGroups and ddlProcesses. The Javascript for attempting to read the
selected index is as follows:

var entityTypeIndex =
document.getElementById('ct100$ContentPlaceHolder1$ddlEntityType').selectedIndex; // this one works
var entityGroupIndex =
document.getElementById('ct100$ContentPlaceHolder1$ddlEntityGroups').selectedIndex; // this doesn't work
var processesIndex =
document.getElementById('ct100$ContentPlaceHolder1$ddlProcesses').selectedIndex; // this doesn't work

Trying all three in the Immediate Window, the first one still works; the
message I get back for the other two is: Object required

Why won't it find the dropdownlists for the two that I need to return the
SelectedIndex from?
 
L

Laurent Bugnion, MVP

Hi,
I have three dropdownlists in an AJAX UpdatePanel and I need to return the
selected index for two of them; the problem is that I'm only able to return
the selected index for the first dropdownlist of the three and it is the one
that I don't need. The dropdownlists are named, in order, ddlEntityType,
ddlEntityGroups and ddlProcesses. The Javascript for attempting to read the
selected index is as follows:

var entityTypeIndex =
document.getElementById('ct100$ContentPlaceHolder1$ddlEntityType').selectedIndex; // this one works
var entityGroupIndex =
document.getElementById('ct100$ContentPlaceHolder1$ddlEntityGroups').selectedIndex; // this doesn't work
var processesIndex =
document.getElementById('ct100$ContentPlaceHolder1$ddlProcesses').selectedIndex; // this doesn't work

Trying all three in the Immediate Window, the first one still works; the
message I get back for the other two is: Object required

Why won't it find the dropdownlists for the two that I need to return the
SelectedIndex from?

The unique name for the client, aka ClientId is generated by the server.
You must make sure that 'ct100$ContentPlaceHolder1$ddlEntityGroups' and
the other are really named this way. To make this sure, view the HTML
source on the web client. In your server-side code, use the control's
ClientId to generate the JavaScript code to get it.

HTH,
Laurent
 
M

Mark Rae [MVP]

var entityTypeIndex =
document.getElementById('<%=ddlEntityType.ClientID%>').selectedIndex;
var entityGroupIndex =
document.getElementById('<%=ddlEntityGroups.ClientID%>').selectedIndex;
var processesIndex =
document.getElementById('<%=ddlProcesses.ClientID%>').selectedIndex;
 
G

Guest

Thanks for the tip. I'd inadvertently typed the number "1" rather than the
letter "l"; I thought I'd copied and pasted it, but apparently not.

Laurent Bugnion said:
Hi,
I have three dropdownlists in an AJAX UpdatePanel and I need to return the
selected index for two of them; the problem is that I'm only able to return
the selected index for the first dropdownlist of the three and it is the one
that I don't need. The dropdownlists are named, in order, ddlEntityType,
ddlEntityGroups and ddlProcesses. The Javascript for attempting to read the
selected index is as follows:

var entityTypeIndex =
document.getElementById('ct100$ContentPlaceHolder1$ddlEntityType').selectedIndex; // this one works
var entityGroupIndex =
document.getElementById('ct100$ContentPlaceHolder1$ddlEntityGroups').selectedIndex; // this doesn't work
var processesIndex =
document.getElementById('ct100$ContentPlaceHolder1$ddlProcesses').selectedIndex; // this doesn't work

Trying all three in the Immediate Window, the first one still works; the
message I get back for the other two is: Object required

Why won't it find the dropdownlists for the two that I need to return the
SelectedIndex from?

The unique name for the client, aka ClientId is generated by the server.
You must make sure that 'ct100$ContentPlaceHolder1$ddlEntityGroups' and
the other are really named this way. To make this sure, view the HTML
source on the web client. In your server-side code, use the control's
ClientId to generate the JavaScript code to get it.

HTH,
Laurent
--
Laurent Bugnion [MVP ASP.NET]
Software engineering, Blog: http://www.galasoft.ch
PhotoAlbum: http://www.galasoft.ch/pictures
Support children in Calcutta: http://www.calcutta-espoir.ch
 
L

Laurent Bugnion, MVP

Hi,
Thanks for the tip. I'd inadvertently typed the number "1" rather than the
letter "l"; I thought I'd copied and pasted it, but apparently not.

That's why you shouldn't. You should use ClientID instead. This way, if
the containing control's name changes, you don't need to change your code.

HTH,
Laurent
 

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

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,051
Latest member
CarleyMcCr

Latest Threads

Top