javascript - 如何使用 javascript 验证简单的表单

标签 javascript

好吧,我想做的是几件事:

  1. 如果任何字段为空,请在表单上方列出错误
  2. 如果空白,则以红色突出显示
  3. 一旦用户尝试修复它,即填充空白字段,红色突出显示就会消失......就像您在焦点模糊时这样做吗?

(而且我是一个 JS 新手,所以我仍然在努力如何实现一个函数来完成这一切......你确实使用了一个函数,对吗?

这是我的早期形式...我真的很难实现上面列出的这三个特征...我如何在下面的代码中实现这些特征?提前致谢。

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Testy Form</title>
    </head>
    <body>
        <h4>Learning to Validate Forms</h4>
        <div id="validationErrors"></div>
        <form action="" method="post" id="testyForm">
            <label>Name
                <input type="text" name="name" value="" id="name">
            </label>
            <br /><br />
            <label>Email
                <input type="text" name="email" value="" id="email">
            </label>
            <br /><br />
            <input type="submit" value="Submit">
        </form>

        <script>

            var formy = document.getElementById('testyForm');

             var required_inputs = ['name', 'email'];
        formy.onsubmit = function(event) {
            for (var i = 0; i < required_inputs.length; i++) {
                var input = this[required_inputs[i]];
                if (input.value.length == 0) {
                    event.preventDefault(); 
                    input.style.border = "1px solid red";
                    input.style.backgroundColor = "#FFCCCC";
                }
            }
        }
        </script>
    </body>
    </html>

最佳答案

如果您只是想让事情正常工作,我建议使用验证库而不是编写自己的库。

如果您正在学习 Javascript,那么您的代码中存在以下错误:

更新

var input = this[required_inputs[i]];

var input = document.getElementById(required_inputs[i]);

编辑 - 解释

您将 required_inputs 声明为数组:

var required_inputs = ['name', 'email'];

当你循环遍历它时,required_inputs[i]将返回'name''email',以便可以用作getElementById() 的参数。

关于javascript - 如何使用 javascript 验证简单的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46086704/

相关文章:

javascript - 将变换值添加到元素上已有的当前变换?

javascript - Google 面积图中重复的一系列数据

javascript - jQuery 等高列 - 列间歇性地打破 DOM 之外

javascript - Node.js:Request.body 未定义(使用主体解析器)

javascript - 未捕获的类型错误未定义不是函数

javascript - 在有事件的div内容上触发事件

javascript - Vue 在子组件函数完成时调用父组件函数

javascript - Angular 中 tsconfig.json 文件的 lib 数组中的 dom 是什么?

javascript - 包含多个图像且无重复的自动幻灯片放映

javascript - jquery 在满足两个条件时执行函数