链接到代码(可以通过页面源找到js和css):https://dl.dropboxusercontent.com/u/16952797/webdev/uppg1/kontakt.html alt链接:http://jsfiddle.net/DdQhk/(虽然jsfiddle不能正确呈现页面)
相关的代码行(函数createFormBug() - kontakt.js中的第31行到第66行) 代码:
function createFormBug() {
var form = document.createElement("form");
var fieldset = document.createElement("fieldset");
var legend = document.createElement("legend");
var labelFunction = document.createElement("label");
var labelInterface = document.createElement("label");
var labelComment = document.createElement("label");
var radioFunction = document.createElement("input");
radioFunction.type = "radio";
var radioInterface = document.createElement("input");
radioInterface.type = "radio";
var textarea = document.createElement("textarea");
var buttonSubmit = document.createElement("input");
radioInterface.type = "submit";
form.id = "formBug";
legend.textContent = "Bugg";
document.getElementById("divForm").appendChild(form);
form.appendChild(fieldset);
fieldset.appendChild(legend);
fieldset.appendChild(labelFunction);
fieldset.appendChild(radioFunction);
fieldset.appendChild(labelInterface);
fieldset.appendChild(radioInterface);
fieldset.appendChild(labelComment);
fieldset.appendChild(textarea);
fieldset.appendChild(buttonSubmit);
}
context:我正在尝试使用js动态创建表单,遗憾的是,由于某种原因,某些元素没有被追加。
在Chrome上运行时生成的html的部分输出(相关部分):
<div id="divForm">
<form id="formBug">
<fieldset>
<legend>Bugg</legend>
<label></label>
<input type="radio">
<label></label>
<input type="submit">
<label></label>
<textarea></textarea>
<input>
</fieldset>
</form>
</div>
答案 0 :(得分:1)
我认为您的代码正如您所期望的那样工作。唯一明显的错误是你设置的radioInterface.type = "submit";
可能意味着buttonSubmit.type = "submit";
。
很明显,如果您实际放入一些内容以使label
之类的元素实际可见,则此方法可以正常工作...
也许是这样的事情?
var form = document.createElement("form");
var fieldset = document.createElement("fieldset");
var legend = document.createElement("legend");
var labelFunction = document.createElement("label");
labelFunction.textContent = 'Function'; // <-- added
var labelInterface = document.createElement("label");
labelInterface.textContent = 'Interface'; // <-- added
var labelComment = document.createElement("label");
labelComment.textContent = 'Comment'; // <-- added
var radioFunction = document.createElement("input");
radioFunction.type = "radio";
var radioInterface = document.createElement("input");
radioInterface.type = "radio";
var textarea = document.createElement("textarea");
var buttonSubmit = document.createElement("input");
buttonSubmit.type = "submit"; // <-- corrected
我相信你实际将它们添加到文档中的代码应该可以正常工作。