我正在制作一个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/

10-09 19:37