我有一个下拉列表和一个表,在下拉列表中应该是所有具有类别"软件"的对象。列出(工作正常),并在表格中列出所有具有类别"硬件"应列出。但我的目标是,如果软件与硬件不兼容,则应禁用此硬件(灰色)。
所以我试图访问"不兼容"列表,所以我可以从下拉列表中检查硬件是否与所选软件兼容。但我无法找到获得所选软件的解决方案。
这是我的.html:
<select th:field="*{objects}" >
<option th:each="software : ${objects}"
th:if="${software.category} == software"
th:value="${software.id}"
th:text="${software.name}">
</option>
</select>
<table class="table">
<tr th:each="hardware: ${objects}"
th:if="${hardware.category} == hardware"
th:class="${#lists.contains([selectedSoftware].getIncompatible(), hardware)} ? disable : normal">
<td th:text="${hardware.id}"></td>
<td th:text="${hardware.name}"></td>
<td th:text="${hardware.category}"></td>
</tr>
</table>
答案 0 :(得分:0)
首先,th:field
是服务器端引擎。换句话说,th:field
不知道客户当前在页面中做了什么,除非用户提交表单。我假设您提交表单,因为您有使用th:field
。
您没有正确使用th:object
。在这里,您将所选值绑定到整个对象数组。属性<form>
应指向您<select th:field="*{selectedSoftwareId}" >
中使用的configuration.selectionGranularity
(a.k.a.命令)中的字段。 proper waits及以下:
WKSelectionGranularityCharacter
如果您正在寻找客户端解决方案,那么您需要使用Ajax和JavaScript。