Как использовать опцию select в операторе c: select - PullRequest
1 голос
/ 13 июня 2011

Мне нужно скрыть или показать комбо в зависимости от значения другого комбо, найдите мой код ниже:

<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>

Я не знаю, как использовать значение опции Residence_nation с использованием JSTL.

 <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();

                      }
         });

Кто-нибудь знает, как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 13 июня 2011

Привет, все, что я решил таким образом:

              <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>
0 голосов
/ 13 июня 2011

Вы действительно не можете этого сделать: JSTL и язык выражений оцениваются на стороне сервера, а не на стороне клиента.Если элемент ввода residence_nation select изменен клиентом в его браузере, это изменение недоступно для языка выражений на странице JSP.

Для этого вам нужно будет использовать Javascript: jQuery обычнобиблиотека выбора.Существует миллион руководств по jQuery по использованию элемента select: канонический - здесь .Вы можете связать функцию, которая скрывает / показывает правильную опцию при изменении значения поля residence_nation.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...