提问者:小点点

无法通过JavaScript验证表单。 剧本是正确的,但我还是不知道为什么它不起作用


下面是我的代码:

    <!-- http://getbootstrap.com/docs/4.1/components/forms/ -->
    <form  onsubmit="record()" class="container" action="/form" method="post">



        <div class="row"><label class="mx-2 my-2 form-inline">Name: <input Id="name" class="mx-2 my-2 form-control" type="text" placeholder="Type in your Name"></label></div>
        <div class="row form-inline"><label class="mx-2 my-2"><input name="CreatureType" class="mx-2 my-2 form-control" type="radio">I am a Human</label><label class="mx-2 my-2"><input name="CreatureType" class="mx-2 my-2 form-control" type="radio">I am an Alien</label></div>
        <div class="row"><label class="mx-2 my-2 form-inline">Your Planet: <select Id="planet" class="mx-2 my-2 form-control"><option></option><option>Earth</option><option>Mars</option></select></label></div>

        <!-- http://getbootstrap.com/docs/4.1/components/buttons/ -->

        <script>

        let name= document.getElementById("name");

        function record() {

            if(name.value=="") {
                alert("Enter your Name");
                return false;
            }
        }

    </script>
        <button Id="submit" class="btn btn-primary" type="submit">Submit</button>

    </form>

但当我运行它时,似乎没有任何影响,也没有警告消息。 我已经通过onsubmit在表单上运行了它。 这是非常令人沮丧的,因为我已经检查了几次从网上的代码,它似乎是相当适当的,但仍然没有工作,请提出一些建议。


共1个答案

匿名用户

您正在调用getElementById()函数,但没有具有输入ID的元素。 所以在函数中使用“name”代替“input”。

let name = document.getElementById("name")

另一个提示是,如果您希望字段是必需的,您可以在输入字段中设置required属性。

<input name="something" class="input" required>

这将弹出一条JavaScript消息。