我正在开发一个用户可以创建和保存自己的HTML表单的网站。我没有在数据库中逐个插入表单元素和ID,而是考虑使用js(最好是jquery)来获取表单的HTML(代码源格式)并通过mysql将其插入文本行。
例如我在div中有一个表单
<div class="new_form">
<form>
Your Name:
<input type="text" name="something" />
About You:
<textarea name=about_you></textarea>
</form>
</div>
使用js是否可以在“new_form”div中获取原始HTML?
答案 0 :(得分:11)
获取div中的所有HTML
$(".new_form").html()
仅获取文本
$(".new_form").text()
您可能需要验证HTML,this question可能会对您有所帮助(它在C#中,但您可以理解)
答案 1 :(得分:4)
注意当您使用上述innerHTML
或html()
时,您将无法获得您输入的完全原始HTML。您将获得网络浏览器的概念当前的文档对象应该看起来像是序列化为HTML。
在确切的格式中会出现浏览器差异,例如名称大小写,间距,属性顺序,哪些字符为&
- 转义,以及属性引用。特别是,IE可以为您提供无效的HTML,其中应该引用的属性不是。 IE也会错误地在其value
属性中输出表单字段的当前值。
您还应该了解让用户提交任意HTML所涉及的跨站点脚本风险。如果你要保证这个安全,你需要一些重要的HTML'净化'。
答案 2 :(得分:3)
是的,确实如此。您使用div的innerHTML属性。像这样:
var myHTML = document.getElementById('new_form').innerHTML;