I have this jsp page, where if you click a radio button, one subsection should become invisible and the option in the select list should get changed.
<center>
<span class="ReportSubsectionTitle">Report Type</span>
<br />
<html:radio styleId="detail" property="reportOutputStyleID" onclick="doSummary();" value="1" />Pending Funding
<html:radio styleId="summary" property="reportOutputStyleID" onclick="doDetail();" value="2" />Previously Funded
</center>
<script>
function doDetail(){
document.getElementById("narrowByDateRangeTop").checked = false;
document.getElementById("narrowByDateRangeBottom").checked = false;
document.getElementById("narrowByDateRangeTop").disabled = true;
document.getElementById("narrowByDateRangeBottom").disabled = true;
document.getElementById("dateRangeTypeID").disabled = true;
document.getElementById("dateRangeLabel").disabled = true;
document.getElementById("startDateStr").disabled = true;
document.getElementById("startDateLabel").disabled = true;
document.getElementById("startDateCalendarTrigger").disabled = true;
document.getElementById("endDateStr").disabled = true;
document.getElementById("endDateLabel").disabled = true;
document.getElementById("endDateCalendarTrigger").disabled = true;
document.getElementById("startDateTime").disabled = true;
document.getElementById("endDateTime").disabled = true;
document.getElementById("narrowByDateRangeTop").style.visibility = "hidden";
document.getElementById("narrowByDateRangeBottom").style.visibility = "hidden";
document.getElementById("dateRangeTypeID").style.visibility = "hidden";
document.getElementById("dateRangeLabel").style.visibility = "hidden";
document.getElementById("startDateStr").style.visibility = "hidden";
document.getElementById("startDateLabel").style.visibility = "hidden";
document.getElementById("startDateCalendarTrigger").style.visibility = "hidden";
document.getElementById("endDateStr").style.visibility = "hidden";
document.getElementById("endDateLabel").style.visibility = "hidden";
document.getElementById("endDateCalendarTrigger").style.visibility = "hidden";
document.getElementById("startDateTime").style.visibility = "hidden";
document.getElementById("endDateTime").style.visibility = "hidden";
document.getElementById("DateSelection").style.visibility = "hidden";
}
function doSummary(){
document.getElementById("narrowByDateRangeTop").checked = true;
document.getElementById("narrowByDateRangeBottom").checked = false;
document.getElementById("narrowByDateRangeTop").disabled = false;
document.getElementById("narrowByDateRangeBottom").disabled = false;
document.getElementById("dateRangeTypeID").disabled = false;
document.getElementById("dateRangeLabel").disabled = false;
document.getElementById("startDateStr").disabled = false;
document.getElementById("startDateLabel").disabled = false;
document.getElementById("startDateCalendarTrigger").disabled = false;
document.getElementById("endDateStr").disabled = false;
document.getElementById("endDateLabel").disabled = false;
document.getElementById("endDateCalendarTrigger").disabled = false;
document.getElementById("startDateTime").disabled = false;
document.getElementById("endDateTime").disabled = false;
document.getElementById("narrowByDateRangeTop").style.visibility = "visible";
document.getElementById("narrowByDateRangeBottom").style.visibility = "visible";
document.getElementById("dateRangeTypeID").style.visibility = "visible";
document.getElementById("dateRangeLabel").style.visibility = "visible";
document.getElementById("startDateStr").style.visibility = "visible";
document.getElementById("startDateLabel").style.visibility = "visible";
document.getElementById("startDateCalendarTrigger").style.visibility = "visible";
document.getElementById("endDateStr").style.visibility = "visible";
document.getElementById("endDateLabel").style.visibility = "visible";
document.getElementById("endDateCalendarTrigger").style.visibility = "visible";
document.getElementById("startDateTime").style.visibility = "visible";
document.getElementById("endDateTime").style.visibility = "visible";
document.getElementById("DateSelection").style.visibility = "visible";
}
</script>
Then, I have this subsection labelled “Date Selection” which I want to make invisble:
<tr>
<td align="center" style="padding-bottom: 5px;">
<span id = "DateSelection" class="ReportSubsectionTitle">Date Selection</span>
</td>
<td align="center" style="padding-bottom: 5px;">
<span class="ReportSubsectionTitle">Save Generated Report?</span>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap">
<%@ include file="dateSelectionSection1.jsp" %>
</td>
<td valign="top" nowrap="nowrap" style="padding-left: 10px;">
<%@ include file="savedReportNameField.jsp" %>
</td>
</tr>
And I have a select list
<span style="padding-left: 5px;">
Date Type:
<html:select property="dateTypeID">
<html:options collection="dateTypes" property="id" labelProperty="name"/>
</html:select>
</span>
I tried adding id to the select, but it gets an error saying tag not found. I want to change the selection under the dropdown and lock the selection.
I tried document.getElementById(“dateTypeID”).options[0].selected = 1. But, nothing changes after that.
I am new to JSP, and am not quite sure of how to handle this.
Say this is your select statement:
In your javascript function that gets called after the user ticks the radio button you first remove all the options from the selectList like so:
Then you re-populate the selectList doing something like this:
The datatypes for the “new Option()” function being:
So this doesn’t get handled anyway different in a JSP than it would in a HTML page. Hope you found this usefull 🙂