为什么名字没有被添加到列表中?

时间:2011-07-14 18:13:50

标签: javascript html

我发现this fiddle并且我试图让它工作......我无法弄清楚为什么名称没有被添加到列表中,由于某种原因,添加按钮就像提交按钮一样我不知道为什么......它应该将所有数字添加到列表中,所以当我点击提交时,它应该将数字发送到数组中..

JavaScript的:

function bindName() {
    var inputNames = document.getElementById("names").getElementsByTagName("inputNames");
    for (i = 0; i < inputNames.length; i++) {
        inputNames[i].onkeydown = function() {
            if (this.value == "") {
                setTimeout(deletename(this), 1000);
            }
        }
    }
}
document.getElementById("addName").onclick = function() {

    var num1 = document.getElementById("name");

    var myRegEx = /^[0-9]{10}$/;


    var myRegEx = /^[0-9]{10}$/;
    var itemsToTest = num1.value;


    if (myRegEx.test(itemsToTest)) {


        var form1 = document.getElementById("names");

        var nameOfnames = form1.getElementsByTagName("inputNames").length;

        var newGuy1 = document.createElement("inputNames");

        newGuy1.setAttribute("id", nameOfnames);
        newGuy1.setAttribute("type", "text");
        newGuy1.setAttribute("value", num1.value);

        form1.appendChild(newGuy1);
        num1.value = "";
        bindName();

    }
    else {
        alert('error');
    }


};

HTML:

<h1>Enter Name</h1>
<div id="mainName">
    <h2>name</h2>
    <label for="name">Add Names: </label>
    <input id="name" type="text">
    <button id="addName">Add</button>
    <form>
        <div id="names">

        </div>
        <input METHOD="POST" action="text.php" type="submit" value="Submit">
    </form>
</div>

3 个答案:

答案 0 :(得分:0)

由于此/^[0-9]{10}$/;仅接受10个号码,因此请尝试输入1234567890,您将看到没有错误。

答案 1 :(得分:0)

我见过

document.createElement("inputNames");

不应该

document.createElement("input");

答案 2 :(得分:0)

我不确定为什么你的“名字”字段仅限于10位数字,但我已经有了工作。 http://jsfiddle.net/y8Uju/4/

我认为问题在于您尝试使用标记名称inputNames创建元素,但这不是有效标记。相反,我将其更改为创建输入,并将类设置为inputNames。