th:disabled="${true}" 为什么不生效。
时间: 2023-11-12 20:04:24 浏览: 80
`th:disabled="${true}"` 这个 Thymeleaf 表达式会将该表单元素设置为不可编辑状态。如果它没有生效,可能有以下几个原因:
1. 代码错误:请确保该表单元素的 HTML 代码正确,没有其他语法错误或语义错误。
2. Thymeleaf 表达式未被正确解析:请确保 Thymeleaf 表达式被正确解析,并且表达式中的变量或值是正确的。
3. 其他代码覆盖了该表单元素的属性:请检查是否有其他 JavaScript 代码或框架的代码影响了该表单元素的属性,可能会覆盖或修改 `th:disabled` 属性的值。
4. CSS 样式问题:请检查是否有 CSS 样式影响了该表单元素的可编辑状态,可能会覆盖或修改 `th:disabled` 属性的样式。
如果您无法确定问题所在,可以在浏览器的控制台中检查元素的属性和样式,分析可能的原因。
相关问题
th:disabled="${true}" 为什么会不生效。
`th:disabled="${true}"` 这个 Thymeleaf 表达式会将该表单元素设置为不可编辑状态。如果它没有生效,可能有以下几个原因:
1. 代码错误:请确保该表单元素的 HTML 代码正确,没有其他语法错误或语义错误。
2. Thymeleaf 表达式未被正确解析:请确保 Thymeleaf 表达式被正确解析,并且表达式中的变量或值是正确的。
3. 其他代码覆盖了该表单元素的属性:请检查是否有其他 JavaScript 代码或框架的代码影响了该表单元素的属性,可能会覆盖或修改 `th:disabled` 属性的值。
4. CSS 样式问题:请检查是否有 CSS 样式影响了该表单元素的可编辑状态,可能会覆盖或修改 `th:disabled` 属性的样式。
如果您无法确定问题所在,可以在浏览器的控制台中检查元素的属性和样式,分析可能的原因。
上一段代码中 th:if 都不符合条件 为什么 th:disabled="${true}" 会生效?
在你提供的代码中,`th:disabled`属性被设置为`${true}`,这意味着它的值将始终为`true`,无论`th:if`表达式的条件是否成立。因此,即使`th:if`表达式的条件不成立,`th:disabled`属性仍然会被设置为`true`,因此文本框将被禁用。
需要注意的是,如果你将`th:disabled`属性设置为`${false}`,或者不设置`th:disabled`属性,那么即使`th:if`表达式的条件不成立,文本框仍然会启用。这是因为HTML规范中规定,如果`disabled`属性的值为`false`或为空,那么元素将启用。
因此,如果你想确保`th:disabled`属性的值取决于`th:if`表达式的条件,你可以使用以下代码:
```
<textarea name="drawDescribed" id="drawDescribed"
th:text="${spotCheck.drawDescribed}"
class="form-control" style="resize: none;"
rows="5" maxlength="512" placeholder="必填,最大限制512字符"
th:if="${currentProcess == null or currentProcess.userId != userId or currentProcess.currentNode != 106}"
th:disabled="${currentProcess != null and currentProcess.userId == userId and currentProcess.currentNode == 106}">
</textarea>
```
在这个修正后的代码中,`th:disabled`属性的值取决于`th:if`表达式的条件。如果`th:if`表达式的条件不成立,`th:disabled`属性的值将为`false`,文本框将启用。如果`th:if`表达式的条件成立,`th:disabled`属性的值将取决于`currentProcess`对象的属性值。
阅读全文