将JavaScript文字传递给th:onclick时,Thymeleaf找不到我的变量

格博萨

我试图在使用Thymeleaf变量的Thymeleaf模板上使用JavaScript函数,如下所示:

 <div th:object="${orderBy}">
        <form method="get" th:action="@{/}">
            <fieldset id="ordenacao">
                <legend>Ordenar</legend>
                <select th:name="orderBy">
                    <option th:each="orderBy : ${T(br.com.teste.segware.util.OrderTypes).values()}"
                    th:value="${orderBy}" th:text="${orderBy.displayValue}" ></option>
                </select> <br/> <br/>
                <input id="orderButton" th:onclick="'javascript:enableBtn(\'' + ${orderBy.displayValue} + '\');'"
                type="submit" value="Ordenar">
            </fieldset>
        </form>
    </div> 

变量是此Enum中的一个选项(使用Lombok生成吸气剂):

@Getter
public enum OrderTypes {
    SELECIONE("Selecione..."),
    RECENTES("Recentes Primeiro"),
    ANTIGAS("Antigas Primeiro"),
    MAISUP("Mais Upvotes"),
    MENOSUP("Menos Upvotes");

    private final String displayValue;

    private OrderTypes(String displayValue) {
        this.displayValue = displayValue;
    }

}

带有th:each菜单中的选项正确显示在呈现的HTML中作为下拉选择/选项菜单。

但是,当我使用相同的变量作为te方法的JavaScript参数呈现时,出现以下错误:

org.attoparser.MarkupEventProcessorHandler.handleOpenElementEnd(MarkupEventProcessorHandler.java:402)的org.attoparser.ParsingElementMarkupUtil.parseOpenElement(ParsingElementMarkupUtil.java:java)的handleOpenElementEnd(HtmlMarkupHandler.java:297)org.attoparser.MarkupPar。 :710)at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:301)... 50更多原因:org.springframework.expression.spel.SpelEvaluationException:EL1008E:在的对象上找不到属性或字段“ displayValue”输入“ br.com.teste.segware.util.OrderTypes []”-可能不公开或无效?在org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:217)在org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference。

这是JS函数(非常简单):

function enableBtn(select)
{
    if(select == 'SELECIONE' || select == 'Selecione...') 
    {
        document.getElementById('orderButton').disabled = true;
    };
}

因此,如果SAME参数在视图中正确呈现,为什么在th:onclick中却说找不到对象的变量?

到目前为止,这是我尝试过的:

th:onclick="'javascript:enableBtn(\'' + ${orderBy.displayValue} + '\');'"


th:onclick="|enableBtn('${orderBy.displayValue}');|"


th:data-enable='|{${orderBy.displayValue}}|' th:onclick="'enableBtn('enable')';'"

拜托,这东西到底是怎么工作的?提前致谢

德克·迪恩

基本JS在选择更改时禁用/启用按钮。

 function enableBtn(select){
    var btn = document.getElementById('orderButton');
    if(select == 'SELECIONE' ){
        btn.disabled = true;
    } else {
        btn.disabled = false;
    }
 }

禁用页面加载上的按钮。选择更改时,请启用按钮

<select th:name="orderBy" th:onChange="enableBtn(this.value)">
   <option th:each="orderBy : ${T( com.example.demo.OrderTypes).values()}"
           th:value="${orderBy}" th:text="${orderBy.displayValue}" ></option>
</select> <br/> <br/>
<input id="orderButton" type="submit" value="Ordenar" disabled>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当输出存储在变量中时,“找不到命令”将变量传递给管道以剪切

将变量传递给Laravel中的路由时找不到404

将文件名传递给变量时找不到命令错误

在Thymeleaf中使用onClick时如何将参数传递给javascript函数调用

如何将 thymeleaf String 变量传递给 javascript 参数?

变量创建以递增以将对象传递给我的对象的对象(在论坛上找不到)JavaScript

在 Spring Boot 中,如何将控制器模型变量传递给 Thymeleaf th:src?

当我传递特定参数时,使用ElementTree的iter()解析XML找不到我的标签

将变量传递给Javascript中的onclick函数无效

为什么Thymeleaf找不到我的物体?

Thymeleaf-将变量传递给片段

ThymeLeaf将变量传递给Vue JS

将变量传递到BASH函数中时“找不到命令”,我引用不正确吗?

如果将bson ObjectId传递给golang中的GridFS OpenId(),我将收到错误“找不到”

在将php数组变量传递给Javascript函数时出错

在表单提交时将Javascript变量传递给PHP

在Sails项目中找不到将变量传递给Jade标题的位置

将变量传递给onClick函数

控制台为什么找不到我的变量?

PL/SQL - 找不到我的局部变量

tidyr :: gather找不到我的值变量

为什么Kohana找不到我的变量

我找不到为什么无法将数据传递给道具的原因

错误:找不到模块“。” 将图像传递给子组件时

将图像名称传递给vue组件时找不到图像

将函数中的参数传递给DiagrammeR中的GrViz时出错:“找不到对象”

在将类型或名称空间名称“ T”作为参数传递给MVC Controller时找不到

Javascript-我找不到我的错误。(单选按钮)

将 angularJs 变量传递给 javascript 变量