千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 如何破坏客户端表单验证

如何破坏客户端表单验证

来源:千锋教育
发布人:syq
时间: 2022-09-22 16:38:19 1663835899

  在将表单提交到服务器之前,默认的浏览器行为是检查所有必填字段是否存在且格式是否正确。这称为客户端表单验证。但是,很容易无意中禁用此有用的浏览器行为。

如何破坏客户端表单验证

  对用户体验的影响

  首先,我们在这里谈论的是用户体验问题,而不是安全问题。提交表单后,必须在服务器端对其进行验证。这可确保只有正确的数据才能进入数据库。因此,虽然客户端表单验证不应涉及应用程序的安全性,但它对于良好的用户体验非常重要。您希望向用户提供有关输入数据是否“已准备好提交”的即时反馈。如果没有客户端验证,用户必须等到响应从服务器返回,并在等待后调整数据。

  浏览器检查的内容

  虽然您可以在 JavaScript 中构建额外的检查,但以下是浏览器将自动执行的内置检查:

  输入类型检查

  每当您为输入字段指定类型时,浏览器都会检查用户输入是否与表单提交中的该类型匹配。更具体地说,当您提交表单并且您的输入不匹配时,浏览器会通知您,并且在您修复表单之前不会提交表单。

1

  检查必填字段是否存在

  每当输入字段具有必需属性时,就会检查其是否存在。

2

  您可以使用更多用于客户端输入验证的内置功能。

  现在,我们回顾了浏览器出色的验证功能,让我们来看看它是如何在意外中被破坏的,以及如何缓解这种情况。

  使用表单属性破坏表单验证

  从HTML5开始,您可以使用表单外部的按钮来提交表单。为此,您必须为按钮提供具有表单 ID 值的表单属性。

3

  这将提交表单,即使按钮位于表单之外。虽然可以做到这一点,但它跳过了浏览器的本机输入检查功能。

  使用 JS 提交函数破坏表单验证

  如果表单是通过 JS 提交函数提交的,则跳过所有输入检查。

  form.submit();

  如何缓解

  非 JS 方法:使用标准表单标记

  将按钮保留在表单内并通过用户直接单击提交表单,表单将自动验证

4

  2.JS方法:使用HTML格式元素报告有效性()

  您可以通过在窗体上调用该方法来使用内置的浏览器验证。在验证输入后使用 JavaScript 方法。reportValiditysubmit

  截至发布日期,此方法在除 IE 之外的所有浏览器中都可用。

  还有另一种类似的方法:。但是,它在Safari中尚不受支持(当然还有IE)。使用该方法,您可以立即请求提交表单,并在提交之前进行验证。它就像单击提交按钮(在表单内部)时发生的默认行为一样。requestSubmit requestSubmit

6

  您可以在此处检查实现状态,但现在,在JS表单提交时,您应该坚持使用和方法。reportValiditysubmit

  您可以通过在提交表单之前验证客户端的输入来改善用户体验。请注意,因为浏览器的默认验证行为很容易被拆除。

  避免在表单外部使用按钮,但如果这样做,请仅在调用表单后使用 JavaScript 提交表单。reportValidity

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT