JavaScript文本输入验证无效

JavaScript文本输入验证无效,javascript,html,forms,Javascript,Html,Forms,我有一张表格 <form action="" method="post" onsubmit="return validate()" > <div class="form-group "> <div class="col-xs-3"> <input type="text" class="form-control input-sm " name="s"> </div>

我有一张表格

<form action="" method="post" onsubmit="return validate()" >
    <div class="form-group ">
        <div class="col-xs-3">
            <input type="text" class="form-control input-sm " name="s">
        </div>
    </div>
    <div class="container" id="btn">
        <button type="submit" class="btn btn-primary btn-default ">submit</button>
        <a class="btn btn-default btn-lg" href="">back</a>
    </div>
</form>
我尝试使用JavaScript进行验证,但我的JavaScript无法工作。表格将在未经验证的情况下提交

  <script type="text/javascript">
        function validate() {
            var x = document.forms["input"]["s"].value;
            if(x == null || x == "") {
                alert('Please enter something!');
                return false;
            }
            else 
                return confirm('confirm submit?');
        }
 </script>
我怎样才能解决这个问题

查找名为input的表单,但您的表单没有名称。加

name="input"

到您的表单标签。如果处理函数有错误,那么表单将被提交,这是一种非直观的行为,imho。

document.forms是一个HTMLCollection。其命名项的名称是节点的id或名称。您的表单既没有id输入,也没有名称输入,因此document.forms[input]不会返回它。

您必须指定表单在文档中的顺序。订单从0开始。还可以修改输入地址,如下所示:

  <script type="text/javascript">
        function validate() {
            var x = document.forms[0].s.value;
            if(x == null || x == "") {
                alert('Please enter something!');
                return false;
            }
            else 
                return confirm('confirm submit?');
        }
 </script>
  <script type="text/javascript">
        function validate() {
            var x = document.forms[0].s.value;
            if(x == null || x == "") {
                alert('Please enter something!');
                return false;
            }
            else 
                return confirm('confirm submit?');
        }
 </script>