0

当我查看模型中的对象列表时,我想在 form:hidden 标记上动态添加 disabled 属性。我拥有的代码(不起作用)有点像这样:

<c:forEach items="${myModel.myList}" var="obj">
        <div id="${obj.id}" onclick="selectObject(this);"><span>${obj.name}</span></div>
        <form:hidden path="myModel.selectedObj" />
</c:forEach>

我希望列表中 obj 的隐藏输入,即他的 id 等于 selectedObj 不被禁用,并且我想要禁用的所有其他隐藏输入。这是我尝试过的:

<form:hidden path="myModel.selectedObj" <c:out value="${obj.id != myModel.selectedObj.id ? "disabled=\"disabled\"" : ""}"></c:out> />

正如我所说,这没有成功。有什么想法吗?

4

1 回答 1

0

试试这段代码:

<c:forEach items="${myModel.myList}" var="obj">
    <div id="${obj.id}" onclick="selectObject(this);"><span>${obj.name}</span></div>
    <c:if test="${obj.id eq myModel.selectedObj.id}">
        <form:hidden path="myModel.selectedObj" />
    </c:if>
    <c:if test="${obj.id ne myModel.selectedObj.id}">
         <form:hidden path="myModel.selectedObj" disabled="disabled" />
    </c:if>
</c:forEach>

或者您可以使用<c:choose />, with<c:when /><c:otherwise />标签:

<c:forEach items="${myModel.myList}" var="obj">
    <div id="${obj.id}" onclick="selectObject(this);"><span>${obj.name}</span></div>
    <c:choose>
        <c:when test="${obj.id eq myModel.selectedObj.id}">
            <form:hidden path="myModel.selectedObj" />
        </c:when>
        <c:otherwise>
            <form:hidden path="myModel.selectedObj" disabled="disabled" />
        </otherwise>
    </c:choose>
</c:foreach>
于 2012-10-14T15:04:26.603 回答