Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在为html表单创建输入字段。。。但增加了';标签';也为了它?_Javascript_Html_Forms_Label - Fatal编程技术网

Javascript 正在为html表单创建输入字段。。。但增加了';标签';也为了它?

Javascript 正在为html表单创建输入字段。。。但增加了';标签';也为了它?,javascript,html,forms,label,Javascript,Html,Forms,Label,我有一个html表单。单击该按钮时,javascript函数会添加一个新字段。我试图让函数也为字段添加一个“标签” 我尝试过使用document.createElement(“标签”),但这不允许我更改innerHtml(或者可能我做得不对…),也不允许添加结束符 这是我的密码。谢谢 var实例=2 function newTextBox(element) { instance++; // Creat

我有一个html表单。单击该按钮时,javascript函数会添加一个新字段。我试图让函数也为字段添加一个“标签”

我尝试过使用document.createElement(“标签”),但这不允许我更改innerHtml(或者可能我做得不对…),也不允许添加结束符

这是我的密码。谢谢 var实例=2

        function newTextBox(element)
        {       
            instance++; 
            // Create new input field
            var newInput = document.createElement("INPUT");
            newInput.id = "text" + instance;
            newInput.name = "text" + instance;
            newInput.type = "text";
            instance++; 

            document.body.insertBefore(document.createElement("BR"), element);
            document.body.insertBefore(newInput, element);

        }
    </script>
</head>


<body>
    <LABEL for="text1">First name: </LABEL>
    <input id="text1" type="text" name="text1">
    <LABEL for="text2">Last name: </LABEL>
    <input id="text2" type="text" name="text2">



    <input type="button" id="btnAdd" value="New text box" onclick="newTextBox(this);" />
</body>
函数newTextBox(元素)
{       
实例++;
//创建新的输入字段
var newInput=document.createElement(“输入”);
newInput.id=“text”+实例;
newInput.name=“text”+实例;
newInput.type=“text”;
实例++;
document.body.insertBefore(document.createElement(“BR”),元素);
document.body.insertBefore(newInput,element);
}
名字:
姓氏:


请注意,标签标签的属性对应于javascript中标签对象的属性。Vincent的示例不起作用

试试这个:

var newlabel = document.createElement("Label");
    newlabel.setAttribute("for",id_from_input);
    newlabel.innerHTML = "Here goes the text";
parentDiv.appendChild(newlabel);

某个部门
var实例=0;
函数newTextBox(元素){
实例++;
//创建新的输入字段
var newInput=document.createElement(“输入”);
newInput.id=“text”+实例;
newInput.name=“text”+实例;
newInput.type=“text”;
var newlabel=document.createElement(“标签”);
setAttribute(“for”,“text”+实例);
newlabel.innerHTML=“文本在这里”;
document.getElementById(“somediv”).appendChild(newlabel);
document.getElementById(“somediv”).appendChild(newInput);
}

将您的代码张贴在您尝试执行
document.createElement('LABEL')
的地方,以便我们可以调试它。很抱歉,删除了它,因为我认为它没有用:var LABEL=document.createElement('LABEL');label.htmlFor=newInput.id;label.value='名字';没有
label.value
。不能使用
label.for
。Proto Bassi的答案是正确的。这两个答案在某些方面都是错误的。他们都主张使用innerHTML,这是不好的,但更重要的是,“for”是使用label.htmlforth设置的。这是正确的答案。必须使用
setAttribute
-1设置的属性
,以建议创建dom,然后使用innerHTML而不是文档。createTextNode@Rafe,请举例说明如何将类型设置为“Label”,以及如何在TextNode上设置属性。我不认为你的评论有什么帮助。
var newlabel = document.createElement("Label");
    newlabel.setAttribute("for",id_from_input);
    newlabel.innerHTML = "Here goes the text";
parentDiv.appendChild(newlabel);
<div id="somediv">
 some div
</div>

<script>

var instance = 0;

function newTextBox(element){               

instance++; 
// Create new input field
var newInput = document.createElement("INPUT");
newInput.id = "text" + instance;
newInput.name = "text" + instance;
newInput.type = "text";

var newlabel = document.createElement("Label");
newlabel.setAttribute("for","text" + instance);
newlabel.innerHTML = "Here goes the text";
document.getElementById("somediv").appendChild(newlabel);
document.getElementById("somediv").appendChild(newInput);
}

</script>