工作中的技术总结_ form表单使用注意事项之form触发后台提交事件 _20220127

如无必要不要使用 form标签 来作为组件的父节点

事件过程:

项目使用的是 spring + jsp 的框架,根据业务需要添加了一个模块。由于项目中有既有的类似功能,选择进行迁移改写。但是 这一功能的原来是需要进行 form 表单提交的,而新加的模块只需要控件展示,不需要对 form表单进行提交,而是另外通过事件来获取并提交其中的 input 控件 value。

由于在迁移过程中 没有注意到该细节,导致 只要 input获得焦点 并 点击 Enter键 就会触发表单事件,这时如果是 input中是 空值 就会报错 已为此响应调用 getOutputStream () ……Constructs a InvocationTargetException with a target exception. 解决了这个问题,我没有第一时间 再现 bug 详细报错情况就不展示了。

通过将 form标签 改成 div标签 就解决了以上问题,一般情况 这个 错误是 比较难发现的,但是 项目中要求 的是 改 input 控件的值 能够 通过键盘输入 也能够通过 下拉列表选择,使用下拉列表时不会报系统错误,而使用 键盘输入时,只要点击 Enter键 就会导致系统错误,这才暴露了这个问题。

一般,我们的使用习惯都是 输入之后 再点击 Enter键 进行确认。所以不容许以上错误现象发生

总之,如非必要,不使用 form标签 作为 展示信息的控件的 父节点,这一点很重要。

<!--引发错误的代码 只要将 form 替换为 div 就能解决-->
<form class="form-inline">
<div class="row" style="margin-bottom:5px;">
<div class="col-sm-8 col-xs-6" style="margin-top: 20px; margin-left: 20px;">
Start Date &nbsp;
<div class="input-group date form_date" data-date="" data-date-format="ddMyy" data-link-field="startDateShow"
data-link-format="yyyy-mm-dd" id=startDateDiv>
<input class="form-control input-sm" id="startDate" name="startDate" size="8" type="text" value="" spellcheck="false" maxlength="9">
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
</form>

工作中的技术总结_ form表单使用注意事项之form触发后台提交事件 _20220127的更多相关文章

  1. form表单target的用法,实现无刷新提交页面

    form表单的target,当将iframe设置为隐藏时,可以实现当前页表单提交而不进行跳转刷新.代码如下,首页在页面里准备一个form表单和一个iframe. <form action=&qu ...

  2. 不使用ASP.NET服务器端控件(包括form表单不加runat="server")来触发.cs里的事件(方法),(适用于有代码洁癖者)。

    很多时候,我们使用服务器端控件写出的代码,会给我们生成一些很多我们看不懂的代码(初学者),但是有时候我们并不需要这些代码(业务需求不同),对于生成的一些代码感到多余.所以我就开始想,有没有一种可能:不 ...

  3. html5之table嵌入form表单布局(务必注意:table标签必须在form表单内部,不能再form表单外部!)

    切记:用table标签来布局form表单元素,table标签必须放在form表单内部,否则可能会出现各种bug 原文地址:https://blog.csdn.net/weixin_43343144/a ...

  4. Form表单如何传递List数组对象到后台的解决办法(转)

    举例说明: [后台有一个对象 User    一个PhotoDo对象],结构如下: public class User{ private String username; private List&l ...

  5. form 表单添加 enctype ="multipart/form-data" 属性后后台接收中文乱码

    解决办法: new String( request.getParameter("title").getBytes("ISO-8859-1"),"utf ...

  6. form表单 相同name 多个value 的后台接受问题

    使用ajax序列化传到后台. data : $("#formid").serialize(); public void fun(@Valid Vo vo){} 使用vo的数组字段属 ...

  7. 小程序 <web-view></web-view> 中使用 form 表单提交

    在最近的小程序项目中,使用到了 <web-view></web-view> 内嵌 H5 页面,在 H5 中需要使用 form 表单提交数据. H5 使用的技术框架是 vue+v ...

  8. 获取html 中的内容 将前台的数据获取到后台 用 jquery 生成一个 form表单 提交数据

    使用js创建一个form表单 ,使用post上传到后台中 下面是代码.在获取html内容的时候使用了js节点来获取内容. parent:父节点.上一级的节点 siblings:兄弟节点.同一级别的节点 ...

  9. 封装react antd的form表单组件

    form表单在我们日常的开发过程中被使用到的概率还是很大的,比如包含了登录.注册.修改个人信息.新增修改业务数据等的公司内部管理系统.而在使用时这些表单的样式如高度.上下边距.边框.圆角.阴影.高亮等 ...

  10. Django学习笔记(6)——Form表单

    知识储备:HTML表单form学习 表单,在前端页面中属于最常见的一个东西了.基本上网站信息的提交都用到了表单,所以下面来学习Django中优雅的表单系统:Form 表单的主要作用是在网页上提供一个图 ...

随机推荐

  1. Sentry 开源版与商业 SaaS 版的区别

    您会在官方的文档中找到大量对 sentry 和 getsentry 的引用.两者都是 Django 应用程序,但 sentry 是开源的, getsentry 是闭源的.里面有什么? https:// ...

  2. Ubuntu 16.04 部署Mariadb

    默认上MariaDB的包并没有在Ubuntu仓库中.要安装MariaDB,我们要设置MariaDB仓库. sudo apt-get install software-properties-common ...

  3. Excel 导入的开发经验

    2020 年开始接触 Java Excel 导入的开发工作. 一家建筑机器人的公司离职后,来到广州找的是一家工厂,开始接触导入的开发工作.之前也没有什么使用开发经验, 是 教学视频   中看到过有些老 ...

  4. PCSR:已开源,三星提出像素级路由的超分辨率方法 | ECCV 2024

    基于像素级分类器的单图像超分辨率方法(PCSR)是一种针对大图像高效超分辨率的新方法,在像素级别分配计算资源,处理不同的恢复难度,并通过更精细的粒度减少冗余计算.它还在推断过程中提供可调节性,平衡性能 ...

  5. 【Docker学习系列】Docker学习2-docker设置阿里云镜像加速器

    在上一篇中,我们学会了在centos中安装docer.我们知道,镜像都是外网的,镜像一般都是比较大的,因为种种原因,我们知道,从外网下载比较慢的.所以,本文,凯哥就介绍怎么将docker的镜像拉取设置 ...

  6. C++创建与调用dll动态链接库(MinGW64 Dev-C++)

    本文使用的是dev-c++,如果涉及到VC++中不一样的操作,也会适当进行区分. 项目一:创建DLL 1.创建一个DLL类型的项目,当前命名为dlltest,并选择合适的路径进行保存.  2.在生成的 ...

  7. 超轻量级、支持插件的 .NET 网络通信框架

    前言 给大家推荐一个轻量级的.支持插件的综合网络通信库:TouchSocket. TouchSocket 的基础通信功能包括 TCP.UDP.SSL.RPC 和 HTTP.其中,HTTP 服务器支持 ...

  8. C# HttpClient 基本使用方式(一)

    .NetCore主要提供了HttpWebRequest,WebClient,HttpClient这三种访问web的方式,其中HttpWebRequest,WebClient都在官方被标注为已过时,如果 ...

  9. Google Ads – UTM

    介绍 UTM (Urchin tracking module) 的作用是帮助我们收集访客的来源渠道. 比如说, 用户是从 Google 广告来的, Youtube, 还是 Facebook 等等. 它 ...

  10. Flutter 2.5 更新详解

    Flutter 2.5 正式版已于上周正式发布!这是一次重要的版本更新,也是 Flutter 发布历史上各项统计数据排名第二的版本.我们关闭了 4600 个 Issue,合并了 3932 个 PR,它 ...