我正在制作一个html表单,我将从列表框中选择项目,然后将自动生成一个输入文本框,如果我选择一个项目两次,我将为所选项目放置数量,它将提醒该项目的框已经生成,为此我将createElement变量值设置为none,一切正常,但它在控制台中抛出错误
未捕获的TypeError:无法执行' appendChild' on' Node':参数1不属于' Node'。
......在这一行:
blueDiv.appendChild(createInput);
...并且文本字段中的光标闪烁没有出现,这是正常的,而我的东西正如我想要的那样工作吗?
function createFunc() {
var getElem = document.getElementById("itemsList");
var optValue = getElem.options[getElem.selectedIndex].value;
var blueDiv = document.getElementById("blueDiv");
var createInput = document.createElement("input");
createInput.type = "text";
createInput.name = optValue;
createInput.id = optValue;
var inputs = document.getElementsByTagName("input");
for(var x=0; x < inputs.length; x++){
var inputsName = inputs[x].getAttribute("name");
if(optValue == inputsName){
alert("Textbox for this field already exists");
createInput = "a";
}
}
blueDiv.appendChild(createInput);
}
<html>
<form id="theForm" action="" type="post">
<select id="itemsList" name="select_pro" class="formTxtInputmany"
onchange="createFunc()" >
<option>SELECT PRODUCT</option>
<option value="21">KEY CHAIN</option>
<option value="22">BISCUITS</option>
<option value="23">COOKING OIL</option>
</select> </form>
<button class="SubmtBtn" onclick="makeJson()">click</button>
</html>
答案 0 :(得分:0)
错误说
未捕获TypeError:无法在'Node'上执行'appendChild':参数1不是'Node'类型
如果你仔细观察,你的标记中没有定义“blueDiv”。
你的代码非常好,只需要定义div
<div id="blueDiv">
编辑:抱歉,我发布了错误的错误消息,但如果你存在blueDiv,你仍然可以验证
答案 1 :(得分:0)
这正是消息所说的。这是相关代码:
var createInput = document.createElement("input");
createInput = "a";
blueDiv.appendChild(createInput);
您将createInput
变量创建为Node
的实例,但随后在其中存储字符串。