HTML:选项标签中的三元运算符,如果匹配输入,则显示选项

时间:2013-07-04 13:56:55

标签: html jsp drop-down-menu operators

<html>
    <head> </head>
    <body> 
        <select>
            <option value='one' ${Data.input == 11 ? "selected" : ""}>1</option>
            <option value='two' ${Data.input == 22 ? "selected" : ""}>2</option>
            <option value='three' ${Data.input == 3 ? "selected" : ""}>3</option>
            <option value='four' ${Data.input == 44 ? "selected" : ""}>4</option>
        </select>
    </body>
</html>

我试图在我的参数与选项中的任何值匹配时显示下拉值。

假设我的Data.input为3,那么当我打开页面时,必须选择默认选项3。 但它没有用。

P.S:我是网络技术的新手。如果我做错了,请告诉我。

修改

我正在使用jsp,您可以在JSFiddle

看到输出

2 个答案:

答案 0 :(得分:2)

我假设您正在使用JSP,因为您在问题中标记了JSP。

试试这个:

<html>
    <head> </head>
    <body> 
        <select>
            <option value='one' <%= Data.input == 1 ? "selected" : "" %>>1</option>
            <option value='two' <%= Data.input == 2 ? "selected" : ""%>>2</option>
            <option value='three' <%= Data.input == 3 ? "selected" : ""%>>3</option>
            <option value='four' <%= Data.input == 4 ? "selected" : ""%>>4</option>
        </select>
    </body>
</html>

我也看到你说== 11,== 22,== 3,== 4。应该是1,2,3,4?

答案 1 :(得分:1)

作为替代解决方案,您可以将JSTL与EL一起使用:

<select>
    <option <c:if test="${Data.value == 1}">selected</c:if>> 1 </option>
    <option <c:if test="${Data.value == 2}">selected</c:if>> 2 </option>
    <option <c:if test="${Data.value == 3}">selected</c:if>> 3 </option>
</select>