当前位置: 首页 > Web前端 > HTML

深入理解表单系列(一)——HTML表单

时间:2023-04-02 20:41:55 HTML

表单元素从HTML到HTML5,表单相关的元素得到了极大的扩展,基本可以满足我们常见的需求。但在实际工作中,由于交互或浏览器兼容的需要,有时不得不对原生的表单元素进行扩展或模拟。但在此之前,清楚地了解和掌握各种形式元素还是很重要的。在本文中,我们将详细介绍表单元素(默认指的是HTML5表单元素)。form1form会自动处理submit事件(submit事件一般由type=submit的input或button元素触发)form会自动做一层validation,使用form.novalidate关闭原来的validateform会根据name获取每个表单元素对应用户输入,然后将表单数据以querystring的形式添加到action属性对应的url中。默认请求方式为GET,默认动作为当前url。event.target.elements将返回所有表单元素运行上面的代码可以看到提交表单后,浏览器的地址会添加这样一个查询字符串?username=tom&passworkd=123&email=test%40gmail.com交互元素需要与用户进行交互,获取用户输入的此类表单元素。我们将它们归类为交互式表单元素。下面列举一些:input:常用的类型有checkbox、tel、number、email等。textareaselectoption反馈元素只是简单的反馈信息,不需要与用户交互的表单元素,我们将其归类为反馈表单元素。下面列出了一些:meteroutput60对于输出,可以在form.oninputType中设置计算值组元素用于对多个表单元素进行分组。我们将它们归类为分组的表单元素。下面列出了一些:fieldsetoptgroup

标签可以用来连接id对应的交互元素,可以用来包裹交互element,Include多个,控制第一个不建议嵌套label
Title点我
用户信息
使用JavaScript处理表单字段最抽象最基本的结构:field:{name:String,value:String||使用keyPathconstfromKeyValues={'user.name':'Tom','user.phone[0].number':'123456','user.phone[0].type':'mobile'};constfromValues={user:{name:'Tom',phone:[{number:'123456',type:'mobile'}]}};如果上面的代码不是很清楚,阻塞表单的完整实现请参考qsDefault需要勾选提交事件checkbox,而不是valueselect-multiple,需要存储多个值。除了上面特殊的交互元素,其他的值都是默认从value中取的。form.html
登录
更多信息
提交form.jsvar$form=document.querySelector('form');functiongetFormValues(form){varvalues={};var元素=form.elements;//elemtns是一个类似数组的对象for(vari=0;i