原标题:html中关于form与表单提交操作的资料集合

这里我们介绍一下form元素与表单提交方面的知识。

form元素

form元素的DOM接口是HTMLFormElement,继承自HTMLElement,因而它与其他的HTML元素拥有相同的默认属性,不过它自身还有几个独有的属性和方法:

属性值 说明 accept-charset 服务器能够处理的字符集,多个字符集用空格分割 action 接受请求的URL,该值可以被form元素中的input或button元素的formaction属性覆盖 elements 表单中所有控件集合(HTMLCollection) enctype 请求的编码类型,该值可以被form元素中的input或button元素的formenctype属性覆盖 length 表单中控件的数量 method 要发送的HTTP请求类型,通常是“get”或“post”,该值可以被form元素中的input或button元素的formmethod属性覆盖 name 表单的名称 reset() 将所有表单域重置为默认值 submit() 提交表单 target 用于发送请求和接收响应的窗口名称,该值可以被form元素中的input或button元素的formtarget属性覆盖 autocomplete 是否自动补全表单元素input元素

input元素是应用非常广泛的表单元素,根据type属性值的不同,有以下几种常用用法:

文本输入

提交输入

单选钮输入

复选框输入

数字输入 输入框只能输入数字,可设置最大值,最小值。

范围输入 类似number,但它会显示一个滑动条,而不是输入框。

颜色输入会弹出一个颜色选择器。

日期输入 会弹出一个日期选择器。

email输入 显示为一个文本输入框,并会弹出一个定制键盘。

tel输入 跟email输入类似

url输入 跟email输入类似,也会弹出一个定制键盘。

textarea元素可以创建一个多行的文本区。

其中cols和row的属性值分别表示文本区宽度和高度的字符。

select元素和option元素结合使用可创建一个下拉菜单。

radio

如何 分组? 设置不同的 name属性即可

例:

玩游戏

写代码

女、

这就是两组radio

placeholder

提供可描述输入字段预期值的提示信息(hint)。

该提示会在输入字段为空时显示,并会在字段获得焦点时消失。

type=hidden

定义隐藏的input。隐藏字段对于用户是不可见的。隐藏字段通常会存储一个默认值,它们的值也可以由 Java 进行修改。

比如用于安全方面,给后台传输用户不可见的name 和value值,让后台做校验,防伪造页面。

提交按钮

在form中加入一个提交按钮,便可使用户得以提交表单。

下列三种按钮皆可在点击时触发表单的submit事件:

规范中button元素的type默认值是submit,但是在IE678下默认值是button,所以从兼容性考虑有必要为button元素手动加上type="submit"属性。

submit事件

初心者可能会认为表单提交是提交按钮的click事件触发,其实不然,按钮元素的click事件与表单的submit事件在不同的浏览器中执行顺序不一,所以为了能准确控制表单提交事件,我们会选择在表单的submit事件中执行验证等操作。

form.addEventListener('submit', function (e) {

if (valid()) {

...

}

e.preventDefault()

})

当form元素中没有上述的三个按钮中任何一个的时候,用户将无法提交表单(回车键也无效),此时可以利用form元素特有的submit()方法执行提交表单,需要注意的是调用submit()方法并不会触发form元素的submit事件,表单的验证等操作应该在调用submit()方法之前。

if (valid()) {

form.submit()

}

表单提交与用户体验

基于现在流行的ajax+跨域POST(CORS)技术,我们很可能不使用form元素直接向服务器提交数据。这虽然可行,但在大多数情况下存在着体验劣化现象。

Java 表单验证

Java 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。

被 Java 验证的这些典型的表单数据有:

用户是否已填写表单中的必填项目?

用户输入的邮件地址是否合法?

用户是否已输入合法的日期?

用户是否在数据域 (numeric field) 中输入了文本?

必填(或必选)项目

下面的函数用来检查用户是否已填写表单中的必填(或必选)项目。假如必填或必选项为空,那么警告框会弹出,并且函数的返回值为 false,否则函数的返回值则为 true(意味着数据没有问题):

function validate_required(field,alerttxt)

{

with (field)

{

if (value==null||value=="")

{alert(alerttxt);return false}

else {return true}

}

}

下面是连同 HTML 表单的代码:

< type="text/java">

function validate_required(field,alerttxt)

{

with (field)

{

if (value==null||value=="")

{alert(alerttxt);return false}

else {return true}

}

}

function validate_form(thisform)

{

with (thisform)

{

if (validate_required(email,"Email must be filled out!")==false)

{email.focus();return false}

}

}

>

Email:

E-mail 验证

下面的函数检查输入的数据是否符合电子邮件地址的基本语法。

意思就是说,输入的数据必须包含 @ 符号和点号(.)。同时,@ 不可以是邮件地址的首字符,并且 @ 之后需有至少一个点号:

function validate_email(field,alerttxt)

{

with (field)

{

apos=value.indexOf("@")

dotpos=value.lastIndexOf(".")

if (apos<1||dotpos-apos<2)

{alert(alerttxt);return false}

else {return true}

}

}

下面是连同 HTML 表单的完整代码:

< type="text/java">

function validate_email(field,alerttxt)

{

with (field)

{

apos=value.indexOf("@")

dotpos=value.lastIndexOf(".")

if (apos<1||dotpos-apos<2)

{alert(alerttxt);return false}

else {return true}

}

}

function validate_form(thisform)

{

with (thisform)

{

if (validate_email(email,"Not a valid e-mail address!")==false)

{email.focus();return false}

}

}

>

Email:

快捷键提交

在没有form元素包裹的情况下,即使当前页面的焦点在表单元素上,按回车键也不会触发表单提交,对于用户而言,需要从键盘控制切换到鼠标/手势控制,破坏了原有的流畅度。解决方法最简单的就是在外层用一个form元素包裹,并且确定form元素中起码有一个提交按钮。此时当表单中的输入域得到焦点时,用户按回车键便会触发提交。

浏览器记住账号密码

在提交表单时,高级浏览器包括移动端浏览器,会询问用户是否需要记住用户账号密码,对于一般用户而言,这是一个十分有用的特性,特别是在移动端,可以为用户节省很多时间。在没有form元素的情况下,浏览器不会弹出该询问窗口。

总结

我们在开发一个表单应用的时候,不应该尝试去除form元素直接进行提交,在form元素中应该包含一个提交按钮,如果是button元素,应该手动加上type="submit"属性。提交事件的处理在form元素的submit事件中,而非提交按钮的click事件。

建站免费素材下载:sucaiq.com

如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对素材圈的支持!若你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!返回搜狐,查看更多

责任编辑:

Java入力项目无法设定到form_html中关于form与表单提交操作的资料集合相关推荐

  1. Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交

    在Java EE应用编程中Servlet是基础,JSP是建立在Servlet基础之上的,其他Web框架如Struts.WebWork和Spring MVC都是基于Servlet的.本文主要讲述MyEc ...

  2. java web 表单提交_Java Web 表单(form)提交问题!

    layout: java title: Java web 的form表单问题 date: 2019-12-19 16:29:36 QHQ-[问题描述]今天做Java web项目的时候,里面一个功能让我 ...

  3. 文件上传 java 完美,vue+java实现文件上传(excel等),会出现跨域问题,直接用form表单提交就不会有问题了(new FormData())...

    vue+java实现文件上传(excel等),会出现跨域问题,直接用form表单提交就不会有问题了(new FormData()) 地址:https://www.cnblogs.com/muscles ...

  4. java htmlunit 模拟输入_教大家用HtmlUnit实现程序模拟页面表单提交

    2013-05-29 13:53:30 有时候大家做测试的时候需要验证web后台压力,如果让测试人员去不断的填写提交表单的话可能会让人吃不消,利用程序则可以很好的解决这一问题. 比如有一个web工程, ...

  5. Java使用FreeMarker自动生成Word文档(带图片和表单)

    Java使用FreeMarker自动生成Word文档(带图片和表单) 1 背景 2 目标效果 3 创建Word模板 3.1 创建模板文档 3.2 转换模板文档 3.3 处理模板文档中的占位符 3.4 ...

  6. SpringCloud工作笔记084---SpringCloud项目中,关于防止表单提交_使用redis+Aspect面向切面实现

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这里用注解+redis的方式来防止表单提交 先声明注解: package cn.gov.credr ...

  7. java http 表单提交_java模仿http表单提交数据(含文件上传)实例源码

    [实例简介]java模仿http表单提交数据.模仿http表单上传文件示例 [实例截图] [核心代码] package com.snca.cloudsign.main; import java.io. ...

  8. Java SpringBoot 表单提交Json提交 Star.hou

    Json方式用到了 请求体反射类SimpleVo,或者理解为类的实例化的反射,为了动态获取类的熟悉. 也就是把请求体作为对象看待,获取了对象里的属性. // json提交方式提交入参 @Respons ...

  9. JAVA 模拟post 表单提交

    一开始模拟http请求用的都是这个工具类 package com.bju.cms.common; import org.apache.commons.httpclient.HttpClient; im ...

最新文章

  1. 手写实现李航《统计学习方法》书中全部算法
  2. android webview静态方法,android – 将静态HTML加载到Webview中
  3. 关于STM32系统构架的一点见解
  4. 演讲者模式投影到幕布也看到备注_家用投影幕布怎么选?(看这一篇就明白了)...
  5. 使用SearchView报错java.lang.UnsupportedOperationException: Failed to resolve ...
  6. 计算机网络学习笔记(25. Cookie技术)
  7. Jenkins testng maven reportng
  8. iOS 测试app提示不受信任的开发者
  9. 计算机查看正在运行的程序,win7系统查看当前正在运行程序状态的方法
  10. Caemra名词缩写解释
  11. 「玩物得志 App」:一家典型的云原生企业,如何在创业早期数次“弯道超车”? | 云原生Talk...
  12. Visual Studio 2019配置OpenGL环境
  13. s_p_a_r_k_内核
  14. 改善用户体念:jsp+Ajax实现实时上传,删除,导入Excel进度条
  15. 汇编程序:通过查表方法实现0-9的平方
  16. 官方解释:Windows Vista和OpenGL
  17. Android Studio的安装 环境搭建
  18. vue报错 ‘Cannot find module ‘D:\nodejs\node_modules\npm\bin\npm-cli.js‘
  19. 西工大计算机考研机试题练习(2019年-2014年)
  20. 使用小白装机工具提示“检测到硬盘错误”解决方法

热门文章

  1. python中用来占位_自定义占位符,如python中的None
  2. 酱油和gbt酱油哪个好_韩国酱油真的这么好,到底怎么挑?
  3. 提交客户端证书_MQTT X v1.3.3 正式发布 - 跨平台 MQTT 5.0 桌面测试客户端
  4. 这种个性化可视化图也太可爱了吧!
  5. 【Python面试】 说说Python中有几种数据类型?​
  6. 同时存多个变量缓存 微信小程序_CPU缓存一致性协议MESI,memory barrier和java volatile...
  7. opencv计算brox光流_字节跳动计算机视觉算法实习生视频面试
  8. php一次性执行多条sql_PHP循环执行多条SQL
  9. python asyncio理解_我实在不懂Python的Asyncio
  10. java内存优化详解_jvm堆内存优化详解