设置下拉列表的默认选择

时间:2015-07-24 18:17:56

标签: html jsp select dropdownbox

<tr>
    <td class="label">
    Filter:
    </td>
    <td>
    <select name="colSearchName" id="colSearchNameID" value="1">
    <%
        colNameIter = content.columnNameIterator( );
        for ( int i = 0; colNameIter.hasNext( ); ++i ) {
    %>
    <option value="<%= i %>"><%= colNameIter.next( ) %></option>
    <%
        }
    %>
    </select>
    </td>
    <td>
    <input id="autocompleteinput" type=text name="keyword" onKeyUp="autoCompleteOnTable(this.value);">
    </td>
</tr>

上面的代码是一个下拉框,其中的值是从XML文件中动态选择的。默认情况下,应选择值为<option>的{​​{1}},但会使用值1的{​​{1}}。设置<option>元素的0无效。

2 个答案:

答案 0 :(得分:1)

这不是您设置所选项目的方式。您需要将selected属性添加到要选择的<option>

例如:

<select name="colSearchName" id="colSearchNameID">
<%
    colNameIter = content.columnNameIterator( );
    for ( int i = 0; colNameIter.hasNext( ); ++i ) {
        if (i == 1) {
%>
<option value="<%= i %>" selected><%= colNameIter.next( ) %></option>
<%
        } else {
%>
<option value="<%= i %>"><%= colNameIter.next( ) %></option>
<%
        }
    }
%>
</select>

答案 1 :(得分:1)

value添加Select属性不会有帮助,因为在HTML中,所选选项由元素上selected属性的存在表示,如下所示:< / p>

<option ... selected="selected">...</option>

因此,您必须有条件地打印它,即在每次迭代时,检查默认值并在条件合格时添加selected="selected"。与您的情况一样,可能的解决方案之一是:

<select name="colSearchName" id="colSearchNameID">
<%
    int defaultValue = 1;
    colNameIter = content.columnNameIterator( );
    for ( int i = 0; colNameIter.hasNext( ); ++i ) {
%>
       <option value="<%= i %>"
       <% if (i == defaultValue) { %> selected="selected" <% } %>
       ><%= colNameIter.next( ) %></option>
<%
    }
%>
</select>