0

我在我的 web 应用程序中为表单使用弹簧表单标签。现在我看到所有输入的弹簧自动生成 ID,选择元素。我在单独的选项卡中有几个表单,这些表单可能具有相同名称的输入(例如 user_category in )。Spring 使用输入元素的名称作为标签的 id。这成为一个问题,因为我在同一页面的不同形式中有多个具有相同名称的输入。我最终得到了多个具有相同 ID 的选择元素。当我使用jquery-ui-multiselect插件来装饰我的选择框时,问题变得更糟。如果同一页面上有多个具有相同 id 的选择器,则更改其中一个选择器上的选择会影响另一个选择器。

我发现的一种解决方法是明确地为我的所有选择框提供唯一 ID。但我认为更简洁的方法是防止 spring 完全在表单标签上生成 id。有没有办法做到这一点?

4

2 回答 2

0

Spring<form:...>标签允许你指定一个id属性,例如:

<form:select id="select1"...>

因此,您可以指定自己的ids.

于 2013-02-18T19:50:52.017 回答
0

似乎只有一种简单而明显的方法可以防止写入“id”属性(至少在 Spring 4.1.4 中)——只是设置一个空的 id:

<form:input id="" .../>

然后AbstractDataBoundFormElementTag#resolveId()将返回 null 而AbstractFormTag#writeOptionalAttribute将跳过它。

于 2015-08-26T13:23:40.700 回答