用户提交表单后,验证开始。页面中会有多个域要求验证,如text input,files, checkbox。同时,根据验证字段的不同,验证方式会有很多种,例如对邮箱、IP地址、电话的验证标准就各不相同。那么就要设计不同的验证标准,并且在将所有待验证域验证完毕后,返回验证是否成功的结果。这就是基本的实现了。
我们还可以将验证机制做得更细致、更友好些。第一点,并不是所有域名都是必须输入,也会有一些空着也无妨的域。那就可以对不同域做出区分。第二点,用户输入出错和空着没填,我们也可以区分开来,并且在前端动态地提示用户。第三点,对于每个用户输入域,我们都是获取用户输入,并拿自己定义的标准比对,这个过程其实是可以复用的,那是不是可以写一个基类将这些过程抽象并封装,让每个域去继承这一基本流程呢?
文件结构
两个启动文件,对应的分别的是基本表单验证实现和完整的验证实现。
HTML文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Form验证</title> <style> .inputs_1{margin-left:36px;} .inputs_2{margin-left:50px;} .inputs_3{margin-left:18px;} </style> </head> <body> <form action="/index" method="post" enctype="multipart/form-data"> IP地址<input type="text" name="ip" class="inputs_1"> <span style="color:red;"> {{ display_error_info(error_message_dict, 'ip') }} </span><br> <p> <input type="checkbox" name="game" value="1">马里奥 <input type="checkbox" name="game" value="2">塞尔达 <input type="checkbox" name="game" value="3">星之卡比 </p> <span style="color:red;"> {{ display_error_info(error_message_dict, 'game') }} </span><br> <input type="file" name="files"/> <input type="file" name="files"/> <input type="submit" value="提交"> <span style="color:red;"> {{ display_error_info(error_message_dict, 'files') }} </span><br> </form> </body> </html>