0

代码链接(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);





}

上下文:我正在尝试使用 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>
4

1 回答 1

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

我相信您将它们实际添加到文档中的代码应该可以正常工作。

于 2013-11-06T13:41:22.543 回答