我想根据陈述' myStatus'来检查一些条件。如果是true
- 将背景颜色更改为红色并禁用元素(用户无法单击它),如果是false
- 将颜色更改为绿色。我知道如何改变颜色(它工作正常):
th:style="${myObject.myStatus} == true ? 'background-color:red' : 'background-color:green'"
但是这行中的disable
元素怎么可能?我试过像:
th:style="${myObject.myStatus} == true ? 'background-color:red' 'disabled:false' : 'background-color:green'"
th:style="${myObject.myStatus} == true ? 'background-color:red' 'disabled' : 'background-color:green'"
th:style="${myObject.myStatus} == true ? 'background-color:red' & disable : 'background-color:green'"
但它不起作用......怎么可能解决这个问题?
@UPDATE
@RequestMapping(value = "/getObject/{someID}", method = RequestMethod.GET)
public String getAttr(@PathVariable(value="someID") String id, Model myObject){
myObject.addAttribute("myObject", this.objectCreator.getObjects());
return "/chosenobject";
}
它的工作原理(因为颜色很好)。我在form
元素中使用它。
答案 0 :(得分:0)
要停用HTML元素,您必须使用HTML属性disabled
:https://www.w3schools.com/tags/att_disabled.asp。您可以使用Thymeleaf执行以下操作:
th:disabled="${myObject.myStatus}"
假设myObject.myStatus
是假布尔值的真值
要有条件地设置颜色,请执行以下操作:
th:style="${myObject.myStatus} ? 'background-color:red' : 'background-color:green'"
答案 1 :(得分:0)
如果从控制器发送的条件评估为true(或false),则可以使用Javascript禁用元素。
document.getElementById("id").disabled = true;
您还可以使用disabled
在CSS中模拟pointer-events:none
属性,如下所示:
th:style="${myObject.myStatus} == true ? 'background-color:red;' : 'background-color:green; pointer-events: none;'"