繁体   English   中英

如何使用HTML中的JavaScript来实现文本输入表单

[英]How to use implement a text input form using JavaScript in HTML

我正在尝试在HTML的在线考试作业中使用JavaScript。 作为项目的要求,我们必须使用文本输入表单以及单选按钮等。 我已经处理了单选按钮的一部分,但是由于某种原因,我的文本输入表单无法正常工作。 使用主项目中的以下代码片段可以清楚地说明我的问题:

<html>
<head>
    <title></title>
    <script type="text/javascript">
    var test, name, matr, myname, count = 0;
    function form(){
        test = document.getElementById("test");

        test.innerHTML = "Count = "+count; 

        test.innerHTML += "<form> \
                            First name:<br> \
                        <input type='text' name='name'><br>\
                        <button onclick='check()'>Submit Answer</button>";
    }

    function check(){
        myname = document.getElementsByName("name");
        if (myname[1].value == "myname")
        {
            count++;
        }
        form();
    }
    window.addEventListener("load", form, false);
    </script>
</head>
<body>
    <div id = "test"></div>

</body>
</html>

该代码的作用是,当用户在名为“ First name”的形式中输入“ myname”并单击“ Submit”时,顶部的计数器应递增。

有人可以告诉我我在做什么错以及如何解决。

如Pluto所述,javascript中的数组从0开始。您还可以考虑对form元素进行修补。 它没有关闭,也没有指定类型,获取或发布。 在下面的示例中,我通过完全删除表格来使其工作。 这是因为按下按钮试图提交表单,因此加载了新页面。

https://jsfiddle.net/jpm68eub/

var test, name, matr, myname, count = 0;
function form() {
    test = document.getElementById("test");
    test.innerHTML = "Count = " + count;
    test.innerHTML += "</br> First name:<br> \
                    <input type='text' name='name'><br>\
                    <button onclick='check()'>Submit Answer</button>";
}

function check() {      
    myname = document.getElementsByName("name");
    if (myname[0].value == "myname") {
        count++;
    }
    form();
}
form();

您需要阻止onclick事件的默认操作。 为此,请尝试如下操作:

function check(e){
    e.preventDefault();
    myname = document.getElementsByName("name");
    if (myname[0].value == "myname")
    {
        count++;
    }
    form();
}

上述用户对于javascript数组的起始位置也正确(它们从0开始)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM