我正在制作一个html表单,将在列表框中选择项目,然后将自动生成一个输入文本框,如果我两次选择一个项目,则会在其中放置所选项目的数量,这将提醒该项目的框已经生成,对于这样做的目的是我将我的createElement变量值设置为none,一切都按我的方式工作,但是它在控制台中引发了错误
未捕获的TypeError:无法在“节点”上执行“ appendChild”:参数1的类型不是“节点”。
...在这一行上:
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>
最佳答案
错误说
未捕获的TypeError:无法在“节点”上执行“ appendChild”:参数1的类型不是“节点”
如果仔细观察,您的标记中没有定义“ blueDiv”。
您的代码非常好,只需要定义div
<div id="blueDiv">
编辑:对不起,我发布了错误的错误消息,但是如果blueDiv存在,您仍然可以验证
关于javascript - 未捕获的TypeError:并且文本框中的光标闪烁在javascript中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33256596/