【发布时间】:2020-06-12 19:21:59
【问题描述】:
我正在构建一个动态 HTML 表单,并使用来自 Javascript 对象的数据预填充字段,如下所示:
function generatePersonalForm(data) {
html= '<form id="personalForm">'
html+='<label for="fname">First name:</label>'
html+='<input type="text" id="firstname" name="firstname" value="'+data.billing.contact.firstname+'"><br>'
html+='<label for="lname">Last name:</label>'
html+='<input type="text" id="lastname" name="lastname" value="'+data.billing.contact.lastname+'"><br>'
html+='<label for="lname">Data:</label>'
html+='<textarea id="emailbody" name="emailbody" rows="12" cols="50" value="'+data.emailbody+'"></textarea><br>'
html+='<input type="submit" value="Submit">'
html+='</form>'
return html;
}
我从 API 接收数据对象,然后创建表单并预先填写:
document.getElementById("personalData").innerHTML = generatePersonalForm(resp);
我的 Javascript 对象 data.emailbody 有时包含 HTML(这是正确且有意的!)。但是,如果它包含像<a href=\"http://www.example.com\">www.example.com</a> 这样的链接,则对象中的“(双引号)会破坏表单。
单引号也是如此。是否有任何选项可以在动态添加的表单值字段中显示 HTML 内容?
【问题讨论】:
-
我认为您需要转义
<s。不过我对此并不积极。此外,innertText在这种情况下可能会更好。
标签: javascript html jquery