Thymeleaf多重导致病情

时间:2017-12-12 20:38:56

标签: javascript java html thymeleaf

我想根据陈述' 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元素中使用它。

2 个答案:

答案 0 :(得分:0)

要停用HTML元素,您必须使用HTML属性disabledhttps://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;'"