<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 || currentProcess.userId != userId || currentProcess.currentNode != 106}" th:disabled="${true}"> </textarea>为什么th:if会不生效?
时间: 2024-02-14 08:18:17 浏览: 75
根据你提供的代码,`th:if`表达式的条件部分似乎不完整。在你提供的代码中,条件部分以`||`符号结尾,但是后面没有指定条件的值。条件部分应该是一个完整的布尔表达式,它的值将决定元素是否呈现在页面中。
如果你想要让`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="${true}">
</textarea>
```
在这个修正后的代码中,`th:if`表达式的条件部分是完整的,并且使用了`or`关键字来表示逻辑“或”操作。注意,这个修正后的代码中还做了一些空格和格式上的调整,这是为了让代码更易读和更易于维护。
相关问题
thymeleaf html 中 对<input <textarea <input type="text" 进行不可选 不可编辑的控制 比如这段 <td colspan="1"><input type="text" id="drawPeople" name="drawPeople" th:value="${spotCheck.drawPeople}" class="form-control" placeholder="请输入点检人姓名" autocomplete="off"/> </td>
要对 `input` 和 `textarea` 标签进行不可选和不可编辑的控制,可以添加 `th:attr` 属性和 `th:readonly` 属性,具体方法如下:
1. 不可选
要使 `input` 和 `textarea` 标签变为不可选状态,可以添加 `th:attr` 属性并设置 `disabled` 属性的值为 `disabled`。例如:
```html
<input th:attr="disabled=${true}" type="text" id="drawPeople" name="drawPeople" th:value="${spotCheck.drawPeople}" class="form-control" placeholder="请输入点检人姓名" autocomplete="off"/>
```
这会使 `input` 标签变为不可选状态。同样,对于 `textarea` 标签也可以使用这种方法。
2. 不可编辑
要使 `input` 和 `textarea` 标签变为不可编辑状态,可以添加 `th:readonly` 属性并设置属性值为 `${true}`。例如:
```html
<input th:readonly="${true}" type="text" id="drawPeople" name="drawPeople" th:value="${spotCheck.drawPeople}" class="form-control" placeholder="请输入点检人姓名" autocomplete="off"/>
```
这会使 `input` 标签变为不可编辑状态。同样,对于 `textarea` 标签也可以使用这种方法。
需要注意的是,如果要同时使 `input` 和 `textarea` 标签既不可选又不可编辑,可以同时添加 `th:attr` 和 `th:readonly` 属性。例如:
```html
<input th:attr="disabled=${true}" th:readonly="${true}" type="text" id="drawPeople" name="drawPeople" th:value="${spotCheck.drawPeople}" class="form-control" placeholder="请输入点检人姓名" autocomplete="off"/>
```
这会同时使 `input` 标签既不可选又不可编辑。
th:if="${currentProcess == null || currentProcess.userId != userId}" 加上这段判断 对thymeleaf html 中 对<input <textarea <input type="text" 进行不可选 不可编辑的控制 比如这段 <td colspan="1"><input type="text" id="drawPeople" name="drawPeople" th:value="${spotCheck.drawPeople}" class="form-control" placeholder="请输入点检人姓名" autocomplete="off"/> 这段进行修改。
可以在 `<input>` 标签上添加 `th:readonly` 属性来使其只读,或者添加 `th:disabled` 属性来使其不可编辑。可以根据条件判断是否添加这些属性,例如:
```
<td colspan="1">
<input type="text" id="drawPeople" name="drawPeople" th:value="${spotCheck.drawPeople}" class="form-control" placeholder="请输入点检人姓名" autocomplete="off"
th:if="${currentProcess == null || currentProcess.userId != userId}"
th:readonly="readonly"/>
</td>
```
这样,如果 `currentProcess` 为空或者其 `userId` 不等于 `userId`,则该输入框会变为只读状态,不可编辑。如果要完全禁用该输入框,可以将 `th:readonly` 改为 `th:disabled`。
阅读全文