Thymeleaf / JavaScript - 如何使用JS设置Thymeleaf属性

时间:2016-06-02 09:53:02

标签: javascript html spring spring-mvc thymeleaf

我有这个输入字段:

<span class="formtext">SERVICE TYPE:</span>
    <input th:field="*{service.serviceType}" class="order" type="text" name="service"/>

每次我将值保存到数据库时它都有效。但是我有一个功能,即在按下按钮时添加更多输入字段。

我有这个JavaScript功能。

function addMoreService()
{
var x = document.getElementById('buttonservice');
var input = document.createElement("input");
input.setAttribute("type","text");
input.setAttribute("name","service");
input.setAttribute("th:field","*{service.serviceType}"); 
input.setAttribute("id","field2");
input.setAttribute("class","partner");
x.appendChild( input );                  

}  

如你所见,我把input.setAttribute(“th:field”,“* {service.serviceType}”);能够像已经看到的输入字段一样保存它。但它似乎没有用。 thymeleaf属性未设置为创建的输入字段。

显示错误:

 Failed to convert from type [java.lang.String] to type [java.lang.Integer] for value 

1 个答案:

答案 0 :(得分:1)

考虑到Tymeleaf是模板服务器端库,我认为您无法通过客户端代码添加组件。

您可以考虑在服务器端拥有一个对象service.serviceType列表,并为列表中的任何项创建一个输入字段。 这样,当您在新的重新加载页面中提交表单时,您会在列表中看到一个新项目,您将在表单中看到一个新的输入字段。

不幸的是,作为服务器端库,您可以与服务器通信并在按下的新按钮上重新加载页面,以便与您的模型创建新的绑定,这将在列表和表单中有一个新项目。 / p>

如果你需要不重新加载页面,你应该考虑构建一个rest-api并使用客户端框架作为Angular或Backbone来发送数据。

我希望这可以帮到你