spring的动态表格
问题内容:
我正在尝试使用Spring表单制作动态表单。基本上,该表单会获得一个学习活动的标题,然后在其下方有一个按钮,显示“添加另一个学习活动”。这使用户可以添加一个以上的学习活动。我希望他能够添加他喜欢的任何东西。
我之前没有尝试过,所以很明显我想到的第一个解决方案遇到了错误。我确实有一种做我会做的错误的感觉,但是只是开车回家我想做的事情,这是代码:
<script language="javascript">
fields = 0;
function addInput() {
document.getElementById('text').innerHTML += "<form:input path='activity[fields++].activity'/><br />";
}
<div id="text">
<form:form commandName="course">
Learning Activity 1
<form:input path="activity[0].activity"/>
<input type="button" value="add activity" onclick="addInput()"/>
<br/><br/>
<input type="submit"/>
</form:form>
<br/><br/>
</div>
问题答案:
您不能form:input>
在JavaScript中使用< ,因为这是在服务器端运行的jsp标记。
但是,关于如何将HTML输入绑定到Spring命令对象中的字段,没有什么神奇的。它只是基于名称。因此,在您的JavaScript中,添加一个新的
<input type="text" name="activity[1].activity">
(例如-显然,您将增加索引)。
我用于更复杂的控件的另一个选项是获取现有控件的HTML(使用Spring
form:input标签创建)并克隆它,将索引替换为递增的数字。如果使用jQuery,这将变得容易得多。
编辑为可能引起问题的一个问题:您要将新的输入框附加到外部div(“文本”)的末尾,这意味着它不在form标记内。那行不通。