【问题标题】:How to use select option in the c:choose statement如何在 c:choose 语句中使用 select 选项
【发布时间】:2011-06-13 13:37:36
【问题描述】:

我需要根据另一个组合的值隐藏或显示一个组合,在下面找到我的代码:

<TR>
    <TD>
        <span >Nazione</span><br>   
        <select name="residence_nation" class="form_textfield" id="residence_nation" style="width: 300px;">
            <c:forEach  var="iNation" items="${iListNation}" varStatus="rowCounter" >
                <c:choose>
                    <c:when test="${iNation.id==iUserInfo.residence_nation}">
                        <option value="${iNation.id}" selected="selected">
                            <c:out value="${iNation.name}" />
                        </option>
                    </c:when>
                    <c:otherwise>
                        <option value="${iNation.id}" >
                            <c:out value="${iNation.name}" />
                        </option>
                    </c:otherwise>
                </c:choose>
            </c:forEach>
        </select>
    </TD>
    <TD>
        <c:choose>
            <c:when
                test="${residence_nation.???==106}">
                <span >Provincia</span><br>
                <select name="residence_province" class="form_textfield" id="residence_province" style="width: 150px;">
                    <c:forEach  var="iProvince" items="${iListProvince}" varStatus="rowCounter" >
                        <c:choose>
                            <c:when test="${iProvince.id==iUserInfo.residence_province}">
                                <option value="${iProvince.id}">
                                    <c:out value="${iProvince.name}"/>
                                </option>
                            </c:when>
                            <c:otherwise>
                                <option selected="selected" value="${iProvince.id}">
                                    <c:out value="${iProvince.name}" />
                                </option>
                            </c:otherwise>
                        </c:choose>
                    </c:forEach>
                </select>
            </c:when>
            <c:otherwise>
                <span>Provincia</span><br>
                <input name="residence_province" type="text" class="form_textfield" id="residence_province_input" size="55" value="
                <c:out value="${iUserInfo.residence_province_ext}" />
                " >                                             
            </c:otherwise>
        </c:choose>
    </TD>
</TR>

我不知道如何使用 JSTL 来使用 Residence_nation 选项值。

 <c:when test="${residence_nation.???==106}">

还可以找到我的 JavaScript

$("#residence_nation").change(function() 
         {
              if ($(this).val()!=106)
                  {
                  $('#residence_province').hide();                
                  $('#residence_city').hide();
                  $('#residence_province_input').show();


                  }else
                      {
                      $('#residence_province').show();                
                      $('#residence_city').show();
                      $('#residence_province_input').hide();

                      }
         });

有人知道我该怎么做吗?

【问题讨论】:

    标签: html jstl


    【解决方案1】:

    你真的不能这样做:JSTL 和表达式语言是在服务器端评估的,而不是在客户端评估的。如果客户端在其浏览器中更改了residence_nation 选择表单输入元素,则该更改不适用于 JSP 页面中的表达式语言。

    为此,您需要使用 Javascript:jQuery 通常是我选择的库。有一百万个关于使用 select 元素的 jQuery 教程:典型的是 here。您可以绑定一个函数,当residence_nation 字段的值更改时隐藏/显示正确的选项。

    【讨论】:

    • 嗨,Femi,我已经做到了,但我还需要在加载页面时“默认”显示/隐藏它......
    • 好吧,如果您在客户端有 JavaScript 逻辑绑定到 change 事件,那么也许您可以在页面加载时触发更改事件。
    • 我也使用了 style 属性来隐藏框,但它不起作用
    • 啊。好吧,也许您想这样做:&lt;c:when test="${iUserInfo.residence_nation == 106}"&gt;,因为在 JSTL 中确实无法引用 HTML select 的值。
    • 我已经试过了,它只是第一次工作..隐藏框的java脚本不起作用
    【解决方案2】:

    大家好,我是这样解决的:

                  <c:forEach  var="iNation" items="${iListNation}" varStatus="rowCounter" >
                    <c:choose>
                        <c:when test="${iNation.id==iUserInfo.residence_nation}">
                          <option value="${iNation.id}" selected="selected"><c:out value="${iNation.name}" /></option>
    
                          <c:set var="iStrNation" value="${iNation.name}" />
    
                        </c:when>
                        <c:otherwise>
                          <option value="${iNation.id}" ><c:out value="${iNation.name}" /></option>
                        </c:otherwise>
                    </c:choose>                     
                  </c:forEach>
            </select>
    
        <TD>    
                         <span >Provincia</span><br>
                        <c:set var="iStrItalia" value="Italia" />
                        <c:choose>
                          <c:when test="${iStrNation==iStrItalia}">                                                                             
                             <c:set var="iStyleProvInput"  value="display: none;" />
                             <c:set var="iStyleProvSelect" value="" />
                          </c:when>
                          <c:otherwise>                   
                           <c:set var="iStyleProvInput"  value="" />
                             <c:set var="iStyleProvSelect" value="display: none;" />
                          </c:otherwise>
                        </c:choose>
    
    
                         <input name="residence_province" type="text" class="form_textfield"  style ="${iStyleProvInput}" id="residence_province_input" size="55" value="<c:out value="${iUserInfo.residence_province_ext}" />" >                                               
                         <select name="residence_province" style ="${iStyleProvSelect}" class="form_textfield" id="residence_province" style="width: 150px;">
                            <c:forEach  var="iProvince" items="${iListProvince}" varStatus="rowCounter" >
                              <c:choose>
                              <c:when test="${iProvince.id==iUserInfo.residence_province}">
                                 <option value="${iProvince.id}"><c:out value="${iProvince.name}"/></option>
                              </c:when>
                              <c:otherwise>
                                 <option selected="selected" value="${iProvince.id}"><c:out value="${iProvince.name}" /> </option>
                              </c:otherwise>
                              </c:choose>                                           
                              </c:forEach>
                          </select> 
                        </TD>
    

    【讨论】:

      猜你喜欢
      • 2015-09-17
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      • 2020-06-20
      • 1970-01-01
      相关资源
      最近更新 更多