Jquery:在表单之间添加fieldset元素

4
如何使用jQuery插入字段集信息,现在我有这个:
<form action="" method="post">

all dynamic field generated with db and array

</form>

我想在表单标签之间添加一个fieldset,使代码变为:

<form action="" method="post">
<fieldset>

all dynamic field generated with db and array

</fieldset>
</form>

你正在使用哪种服务器端语言从数据库中获取数据? - swapnesh
2个回答

6

我建议您在服务器端处理,但如果您确实需要使用jQuery,则可以按照以下方式进行:

$('form').wrapInner('<fieldset />');

Fiddle

.wrapInner 文档


2
太好了,简短而甜美,感谢您,在限制时间(9分钟)结束后将被选中。非常感谢。 - Code Lover

2
或者你可以这样做:
    var newForm = "<fieldset>"+$('form').html()+"</fieldset>";
    $('form').html(newForm);

这也可以运行,但我更喜欢简短的代码。仅供参考,它比Fabricio Matte的代码更具未来性吗? - Code Lover
.html() 的主要问题在于它会覆盖所有现有元素,从而有效地导致表单元素的完全重新解析,并清除所有先前附加的侦听器。 - Fabrício Matté
1
@pixelngrain 你应该接受Fabrício Matté的答案。它比我的答案好多了,我的答案只是另一种方式。 - Siamak Motlagh
1
是的,这属于“可行”的范畴,但从长远来看,您可能会遇到问题。另一种解决方案是分离表单的子元素,将子元素附加到新创建的 fieldset 元素上,并将此 fieldset 附加到表单上 - 但好吧,这基本上就是 wrapInner 方法在幕后执行的操作,因此没有必要手动执行。 - Fabrício Matté
@Siamak.A.M,感谢您的努力和公正的意见。再次感谢您的帮助。 - Code Lover
@FabrícioMatté 很好的解释。感谢您让我了解了一些关于幕后发生的事情以及这段代码是如何工作的知识。非常感激。 - Code Lover

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接