javascript表行单元格选定的下拉值

时间:2016-04-28 18:31:43

标签: javascript

我有一个包含3行的表,我想获得每行的选定下拉值。 JSP代码:

<tr>
        <td style="padding:0px;margin:0px;">
        <select name="lineLineType" id="lineLineType<%= i %>" onchange='javascript:doClose("errorval")' >                                 
       <option value=""> </option>
        <c:forEach items="${savedlineTypes}" var="linetype">                                                                 
             <option value="<c:out value="${linetype.linetypeId}" />" <c:if test="${linetype.linetypeId== line.lineType}">selected</c:if> ><c:out value="${linetype.linetypeId}" /> - <c:out value="${linetype.linetypeDesc}" /></option>
                                                    </c:forEach>
                                            </select>
                                          </td>

我正在尝试下面的java脚本但总是得到下拉列表的第一行值。我怎样才能解决这个问题? 我正在使用的Java脚本

   var dd = document.getElementById("lineLineType");
   lineType = dd.options[dd.selectedIndex].value; 

1 个答案:

答案 0 :(得分:0)

您必须为每个下拉列表指定不同的ID。 像lineLineType1,lineLineType2,lineLineType3一样给它 并通过以下方式获取:

var dd1 = document.getElementById("lineLineType1");
lineType1 = dd1.options[dd1.selectedIndex].value; 
var dd2 = document.getElementById("lineLineType2");
lineType2 = dd2.options[dd2.selectedIndex].value; 
var dd3 = document.getElementById("lineLineType3");
lineType3 = dd3.options[dd3.selectedIndex].value; 

这可能是最简单的,但不是最直接的解决方案。 而不是为每个下拉列表给出id,尝试为所有下拉列表设置相同的类名。例如,如果您将类名称指定为“lineLineType”, 您可以像这样轻松访问它们:

   var dd = document.getElementsByClassName("lineLineType");
   var dd_data = dd[row_you_want_to_get]; // row_you_want_to_get value should be between 0, 1, 2 in your case
   var lineType = dd_data.options[dd_data.selectedIndex].value;

希望这会有所帮助。