【问题标题】:Make radio button to be checked using jstl foreach tag使用 jstl foreach 标记检查单选按钮
【发布时间】:2014-06-12 04:47:12
【问题描述】:

我有一张地图(${userOptions})。例如 {1=B, 2=B, 3=D, 4=A, 5=D}nxtId 包含 1 或 2 或 3 等。

如果<c:if test="${useroption.key == nxtId}"> 返回成功,请检查变量value 是否包含A 或B 或C 或D。如果值为'A',则必须选中相应的单选按钮,其余的必须取消选中,依此类推。

我目前正在使用以下内容:

<c:forEach var="useroption" items="${userOptions}">
    <c:out value="${useroption.key == nxtId}"/>
    <script>
        alert("${useroption.key == nxtId}");
    </script>
    <c:if test="${useroption.key == nxtId}">
    <c:set var="check" value="true"/>
    <c:set var="value" value="${useroption.value}"/>
    </c:if>
    <script>
        alert("check value is"+${check});
    </script>
</c:forEach>

<c:choose>
    <c:when test="${check eq true}">
        <script>
            alert("user option is "+${useroption.value});
        </script>
        <c:forEach var="opt" items="${questionForm}">                                                                                                         
            <c:choose>
                <c:when test="${value == 'A' }">
                    <tr>
                        <td style="padding-left:200px;">                                                                                      
                        <input type="hidden" name="id" id="id" value="${opt.question_id}"/>
                        <h4>Q <c:out value="${opt.question_id}"/>.<c:out value="${opt.question}"/></h4>

                        <input type="radio" name="option" value="A" id="A" checked="checked">

                        A. <c:out value="${opt.option1}"/><br>
                        <input type="radio" name="option" value="B" id="B">
                        B.  <c:out value="${opt.option2}"/><br>
                        <input type="radio" name="option" value="C" id="C">
                        C.  <c:out value="${opt.option3}"/><br>
                        <input type="radio" name="option" value="D" id="D">
                        D.  <c:out value="${opt.option4}"/><br><br>

                        </td>
                    </tr>   
                    <tr align="center">
                        <td>
                        <c:if test="${opt.question_id > 6}">
                        <input type="submit" value="submit"/>
                        </c:if>
                        </td>
                    </tr>                     
                </c:when>
                <c:when test="${value == 'B' }">
                    <tr>
                        <td style="padding-left:200px;">                                                                                      
                        <input type="hidden" name="id" id="id" value="${opt.question_id}"/>
                        <h4>Q <c:out value="${opt.question_id}"/>.<c:out value="${opt.question}"/></h4>

                        <input type="radio" name="option" value="A" id="A" >

                        A. <c:out value="${opt.option1}"/><br>
                        <input type="radio" name="option" value="B" id="B" checked="checked">
                        B.  <c:out value="${opt.option2}"/><br>
                        <input type="radio" name="option" value="C" id="C">
                        C.  <c:out value="${opt.option3}"/><br>
                        <input type="radio" name="option" value="D" id="D">
                        D.  <c:out value="${opt.option4}"/><br><br>

                        </td>
                    <tr align="center">
                        <td>
                        <c:if test="${opt.question_id > 6}">
                        <input type="submit" value="submit"/>
                        </c:if>
                        </td>
                    </tr>                     
                </c:when>
                <c:when test="${value == 'C' }">
                    <tr>
                        <td style="padding-left:200px;"> 
                        <input type="hidden" name="id" id="id" value="${opt.question_id}"/>
                        <h4>Q <c:out value="${opt.question_id}"/>.<c:out value="${opt.question}"/></h4>

                        <input type="radio" name="option" value="A" id="A" >

                        A. <c:out value="${opt.option1}"/><br>
                        <input type="radio" name="option" value="B" id="B">
                        B.  <c:out value="${opt.option2}"/><br>
                        <input type="radio" name="option" value="C" id="C" checked="checked">
                        C.  <c:out value="${opt.option3}"/><br>
                        <input type="radio" name="option" value="D" id="D">
                        D.  <c:out value="${opt.option4}"/><br><br>

                        </td>
                    <tr align="center">
                        <td>
                        <c:if test="${opt.question_id > 6}">
                        <input type="submit" value="submit"/>
                        </c:if>
                        </td>
                    </tr>                     
                </c:when>
                <c:when test="${value == 'D' }">
                    <tr>
                        <td style="padding-left:200px;">                                                                                      
                        <input type="hidden" name="id" id="id" value="${opt.question_id}"/>
                        <h4>Q <c:out value="${opt.question_id}"/>.<c:out value="${opt.question}"/></h4>

                        <input type="radio" name="option" value="A" id="A" >

                        A. <c:out value="${opt.option1}"/><br>
                        <input type="radio" name="option" value="B" id="B" >
                        B.  <c:out value="${opt.option2}"/><br>
                        <input type="radio" name="option" value="C" id="C">
                        C.  <c:out value="${opt.option3}"/><br>
                        <input type="radio" name="option" value="D" id="D" checked="checked">
                        D.  <c:out value="${opt.option4}"/><br><br>

                        </td>
                    <tr align="center">
                        <td>
                        <c:if test="${opt.question_id > 6}">
                        <input type="submit" value="submit"/>
                        </c:if>
                        </td>
                    </tr>                     
                </c:when>           
                <c:otherwise>
                    <script>
                        alert("hello");
                    </script>
                        <td style="padding-left:200px;">                                                                                      
                        <input type="hidden" name="id" id="id" value="${opt.question_id}"/>
                        <h4>Q <c:out value="${opt.question_id}"/>.<c:out value="${opt.question}"/></h4>
                        <input type="radio" name="option" value="A" id="A" >

                        A.  <c:out value="${opt.option1}"/><br>
                        <input type="radio" name="option" value="B" id="B">
                        B.  <c:out value="${opt.option2}"/><br>
                        <input type="radio" name="option" value="C" id="C" >
                        C.  <c:out value="${opt.option3}"/><br>
                        <input type="radio" name="option" value="D" id="D">
                        D.  <c:out value="${opt.option4}"/><br><br>
                        </td>
                    <tr align="center">
                        <td>
                        <c:if test="${opt.question_id > 6}">
                        <input type="submit" value="submit"/>
                        </c:if>
                        </td>
                    </tr>                     
                </c:otherwise>
            </c:choose>
        </c:forEach>
    </c:when>
<c:otherwise>
</c:otherwise>
</c:choose>

有更好的方法吗?

【问题讨论】:

    标签: java jsp jstl


    【解决方案1】:

    你可以在不复制类似的东西的情况下做到这一点

    A.  <c:out value="${opt.option1}"/><br>
    <input type="radio" name="option" value="B" id="B" "${value == 'B' ? 'checked' : ''}">
    B.  <c:out value="${opt.option2}"/><br>
    <input type="radio" name="option" value="C" id="C" "${value == 'C' ? 'checked' : ''}">
    C.  <c:out value="${opt.option3}"/><br>
    <input type="radio" name="option" value="D" id="D" "${value == 'D' ? 'checked' : ''}" >
    D.  <c:out value="${opt.option4}"/><br><br>
    

    【讨论】:

      【解决方案2】:
      A.  <c:out value="${opt.option1}"/><br>
      <input type="radio" name="option" value="B" id="B" ${value eq 'B' ? 'checked' : ''}>
      B.  <c:out value="${opt.option2}"/><br>
      <input type="radio" name="option" value="C" id="C" ${value eq 'C' ? 'checked' : ''}>
      C.  <c:out value="${opt.option3}"/><br>
      <input type="radio" name="option" value="D" id="D" ${value eq 'D' ? 'checked' : ''} >
      D.  <c:out value="${opt.option4}"/><br><br>
      

      从上面的代码你可以实现你想要的...... 通过使用 JSTL 和三元运算符,您可以用更少的代码实现您的功能 希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2021-10-19
        • 2019-05-29
        • 1970-01-01
        • 1970-01-01
        • 2014-01-01
        • 2014-02-05
        • 2013-09-29
        • 2012-03-18
        • 1970-01-01
        相关资源
        最近更新 更多