form 表单 修改对比实践

合集下载

form表单提交过程

form表单提交过程

Form(表单)对于每个WEB开发人员来说,应该是再熟悉不过的东西了,可它却是页面与WEB服务器交互过程中最重要的信息来源。

虽然 WebForms框架为了帮助我们简化开发工作,做了很完美的封装,让我们只需要简单地使用服务端控件就可以直接操作那些HTML表单元素了。

但我认为了解一些基础的东西,可以使我们不必束缚在WebForms框架上,以及遇到一些奇怪问题时,可以更从容地解决它们。

今天,我将和大家来聊聊表单,这个简单又基础的东西。

我将站在HTML和单纯的 框架的角度来解释它们的工作方式,因此,本文不演示WebForms服务器控件的相关内容。

回到顶部简单的表单,简单的处理方式好了,让我们进入今天的主题,看看下面这个简单的HTML表单。

<form action="Handler1.ashx" method="post" ><p>客户名称: <input type="text" name="CustomerName" style="width:300px" /></p><p>客户电话: <input type="text" name="CustomerTel" style="width: 300px" /></p><p><input type="submit" value="提交" /></p></form>在这个HTML表单中,我定义了二个文本输入框,一个提交按钮,表单将提交到Handler1.ashx中处理,且以POST的方式。

注意哦,如果我们想让纯静态页面也能向服务器提交数据,就可以采用这样方式来处理:将action属性指向一个服务器能处理的地址。

antd form 最佳实践

antd form 最佳实践

ant design(下称 antd)是一个基于 React 的 UI 组件库,拥有丰富的组件和功能,为前端开发者提供了极大的便利。

而其中的 Form 组件,则是在实际开发中使用频率极高的组件之一。

在实际开发中,如何合理地使用 antd Form 组件,成为了开发者们经常讨论的话题之一。

本文将从多个角度探讨 antd Form 的最佳实践,帮助开发者们更好地应用 Form 组件进行开发。

1. 良好的组件结构在使用 antd Form 组件时,首先要考虑的是组件的结构布局。

一个良好的组件结构应包含以下几个部分:(1) 表单控件:即真正用于输入或选择数据的各种表单元素,如输入框、下拉框、单选框、复选框等。

在 antd 中,可以使用 Form.Item 包裹每个表单控件,便于统一管理和布局。

(2) 表单按钮:用于提交表单、重置表单等操作的按钮。

一般建议使用antd 的 Button 组件,并放置在 Form.Item 中,以便与表单控件形成统一的样式和布局。

(3) 表单校验信息:用于提示用户输入是否合法的信息,包括错误信息和成功信息。

在 antd 中,可以使用 Form.Item 的 validateStatus 和help 属性来显示校验信息。

良好的组件结构能够使表单组件更加清晰、易维护,也有利于后续的功能扩展和修改。

2. 合理的表单校验表单校验是使用 antd Form 组件时不可忽视的一个重要部分。

antd提供了非常便捷的表单校验功能,可以通过设置 rules 属性来轻松实现对表单控件的校验。

(1) 必填项校验:对于必填项,可以通过设置 rules 中的 required 属性来进行校验。

需要注意的是,antd 使用了强大的校验引擎 async-validator,可以通过设置 required、message 等属性来实现灵活的校验逻辑。

(2) 自定义校验规则:有时候需要对表单控件进行一些特殊的校验逻辑,如密码确认、验证码校验等。

ActionForm表单技术教学示例及课后练习参考资料

ActionForm表单技术教学示例及课后练习参考资料

实现用户登录系统---应用“Field-Driven Action”技术Action根据FormBean的不同可以分为二类,一类是Field-Driven(字段驱动的)Action,Action将直接用自己的字段来充当FormBean的功能,上面的例子就是使用这种方式。

它一般用在页面表单比较简单的情况使用,而且可以直接用域对象作为Action的字段,这样就不用在另写FormBean,减少了重复代码。

另一类是Model-Driven(模型驱动的)Action。

1、修改UserInfoAction类并在该类中定义出下面的成员属性和get/set方法private String userName=null;private String userPassWord=null;private String verifyCodeDigit=null;private int type_User_Admin;Field-Driven(字段驱动)Action,Action拥有自己的属性,这些属性一般是Java的基本类型。

表单字段直接和Action的属性相互对应。

2、编程该Action类package com.px1987.sshwebcrm.action;import java.text.DateFormat;import java.util.Date;import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionSupport;// public class UserInfoAction implements Actionpublic class UserInfoAction extends ActionSupport{private String userName=null;public String getUserName() {return userName;}public void setUserName(String userName) {erName = userName;}public String getUserPassWord() {return userPassWord;}public void setUserPassWord(String userPassWord) {erPassWord = userPassWord;}public String getVerifyCodeDigit() {return verifyCodeDigit;}public void setVerifyCodeDigit(String verifyCodeDigit) {this.verifyCodeDigit = verifyCodeDigit;}public int getType_User_Admin() {return type_User_Admin;}public void setType_User_Admin(int type_User_Admin) {this.type_User_Admin = type_User_Admin;}private String userPassWord=null;private String verifyCodeDigit=null;private int type_User_Admin;public String defaultActionMethod() {// resultMessage ="指定的目标方法或者Action类不存在!";return SUCCESS;}public String doUpdateUser() {resultMessage ="某个用户的信息已经成功修改完毕,修改的时间是:" +DateFormat.getInstance().format( new Date());return SUCCESS;}public String doDeleteUser() {resultMessage ="某个用户的信息已经成功删除完毕,删除的时间是:" +DateFormat.getInstance().format( new Date());return SUCCESS;}public String doUserLogin() {String verifyCodeDigitInSession="UFO123";if(!verifyCodeDigit.equals(verifyCodeDigitInSession)){resultMessage = "你输入的验证码不是系统提示的验证码!";return this.SUCCESS;}//以后真正改变为访问数据库表boolean returnResult=getUserName().equals("yang1234") &&getUserPassWord().equals("12345678");if(returnResult){resultMessage =getUserName()+"您登录成功!";}else{resultMessage =getUserName()+"您的身份信息无效!";}return Action.SUCCESS;}public String doUserRegister() {resultMessage = " 您好!这是在另一个自定义方法处理的注册功能!";return this.SUCCESS;}public String execute() {resultMessage = "您好!您登陆成功!时间为:"+DateFormat.getInstance().format( new Date());return this.SUCCESS;}private String resultMessage;public String getResultMessage() {return resultMessage;}public void setResultMessage(String resultMessage) {this.resultMessage = resultMessage;}public UserInfoAction() {}}3、保证登陆页面userLogin.jsp中的action属性为下面的状态<form action="${pageContext.request.contextPath}/userInfoAction!doUserLogin.action" method="post" > 输入右面的认证码:<input type="text" name="verifyCodeDigit" /> <br />用户类型:<select name="type_User_Admin"><option value="1">前台用户</option><option value="2">后台管理员</option></select> <br />您的名称:<input type="text" name="userName" /> <br />您的密码:<input type="password" name="userPassWord" /> <br /><input type="submit" value="提交" name="submitButton" onclick="this.value='正在提交请求,请稍候'"/><input type="reset" value="取消" /></form>4、部署本项目,再执行本系统中的用户登陆功能页面http://127.0.0.1:8080/sshwebcrm/userManage/userLogin.jsp如果身份信息不正确时(比如,输入错误的密码),将出现下面的错误状态将出现下面的提示,并且正确地获得了用户名称的值作业:采用“Field-Driven Action”技术实现用户注册功能的doUserRegister()方法。

element-ui form 动态的修改值验证规则

element-ui form 动态的修改值验证规则

element-ui form 动态的修改值验证规则在Element UI中,我们可以使用`form`组件来创建表单,可以使用`rules`属性来设置表单项的验证规则。

如果要动态修改表单项的验证规则,可以通过改变`rules`对象的属性值来实现。

以下是一个示例代码,演示如何动态修改一个input表单项的验证规则:```html<template><el-form ref="myForm" :model="formData" :rules="rules" label-width="80px"><el-form-item label="动态输入"><el-input v-model="formData.dynamicInput"></el-input></el-form-item><el-form-item><el-button type="primary" @click="updateValidationRule">更新验证规则</el-button></el-form-item></el-form></template><script>export default {data() {return {formData: {dynamicInput: ''},rules: {dynamicInput: [{ required: true, message: '该字段不能为空', trigger: 'blur' } ]}};},methods: {updateValidationRule() {// 动态修改验证规则this.rules.dynamicInput = [{ max: 6, message: '最大长度为6', trigger: 'blur' }];}}};</script>```在上述代码中,我们定义了一个`formData`对象用来存放表单数据,以及一个`rules`对象用来指定表单项的验证规则。

form表单验证和事件、正则表达式

form表单验证和事件、正则表达式

form表单验证和事件、正则表达式1、表单验证<form></form>(1).⾮空验证(去空格)(2).对⽐验证(跟⼀个值对⽐)(3).范围验证(根据⼀个范围进⾏判断)(4).固定格式验证:电话号码,⾝份证号,邮箱,信⽤卡号等的验证;需要⽤到正则表达式来进⾏验证。

(5).其它验证2、正则表达式⽤符号来描述书写规则:/ 中间写正则表达式 /^ :匹配开头,$:匹配结尾; /^ve/以ve开头的 /ve$/以ve结尾\d:⼀个任意的数字\w:⼀个任意的数字或字母\s:⼀个任意的字符串{n}:把左边的表达式重复n遍{m,n}:把左边的表达式重复⾄少m遍,⾄多n遍 {m, }:把左边的表达式重复⾄少m遍,,⾄多不限+:左边的表达式,⾄少出现⼀次,⾄多不限,相当于{1,}*:左边的表达式,⾄少出现0次,⾄多不限,相当于{0,}:左边的表达式,⾄少出现0次,⾄多出现1次,相当于{0,1}[a,b,c]:只能取⽅括号中内容之⼀[a-z]或[1-9]:在范围中取其⼀|:代表或者;():优先级; \:转义--“\( \)”这个才是要出现的⼩括号,需要转义3、事件事件有三要素:事件源、事件数据、事件处理程序事件冒泡:当元素嵌套的时候,内部元素激发某个事件后,默认情况下外部元素相应的事件也会跟着依次触发可以加return false;是阻⽌默认操作onclick: ⿏标单击触发ondblclick: 双击触发onmouseover: ⿏标移动上⾯触发onmouseout: ⿏标离开时触发onmousemove: ⿏标在上⾯移动时触发onchange: 只要内容改变触发onblur: 失去焦点时触发onfocus: 获得焦点时触发onkeydown: 按键按下的时候触发onkeyup:按键抬起来的时候触发onkeypress:事件在⽤户按下并放开任何字母数字键时发⽣。

但是系统按钮(例如:箭头键、功能键)⽆法得到识别。

微信小程序中form表单提交和取值实例详解

微信小程序中form表单提交和取值实例详解

微信⼩程序中form表单提交和取值实例详解微信⼩程序中form 表单提交和取值实例详解我们知道,如果我们直接给 input 添加 bindinput,⽐如:<input bindinput="onUsernameInput" />,那么可以在onUsernameInput 中直接使⽤ e.detail.value,即:onUsernameInput : function(e) {e.detail.value;}但是,如果有多个输⼊控件,我们不可能为每个控件添加 bindinput、bindchange 这类⽅法来获取值。

我们得这样做:第⼀步、添加 from 控件,并为其指定 bindsubmit 属性值。

第⼆步、添加输⼊控件到 form 中,并为其指定 name 属性值。

第三步、添加 button 控件,并为其指定 form-type="submit"。

第四步、在 js 中取值时,⽤ e.detail.value.xxx 或 e.detail.value["xxx"],其中 xxx 为 name 属性值。

.wxml 代码<form bindsubmit="reg"><view>⽤户:<input type="text" name="username" /></view><view>密码:<input password name="password" /></view><view>兴趣:<checkbox-group name="cb"><label><checkbox value="A" />乒乓球</label><label><checkbox value="B" checked="false" />⽻⽑球</label><label><checkbox value="C" checked="{{checked}}" />排球</label></checkbox-group></view><view>级别:<radio-group name="r"><label><radio value="a" />初级</label><label><radio value="b" />中级</label><label><radio value="c" />⾼级</label></radio-group></view><view><button type="primary" form-type="submit">注册</button></view></form>.js 代码reg: function(e) {console.log(e.detail.value);wx.showToast({title: e.detail.value["cb"].join(","),icon: "success",duration: 2000});}重要说明<input type="text" 中的 type 和 HTML 中的不同,微信⼩程序的 input 有个属性叫 type,这个 type 有⼏个可选值:text:不必解释number:数字键盘(⽆⼩数点)idcard:数字键盘(⽆⼩数点、有个 X 键)digit:数字键盘(有⼩数点)注意:number 是⽆⼩数点的,digit 是有⼩数点的。

form表单 attr用法

form表单 attr用法

form表单 attr用法`form`表单`attr`用法在HTML中,`form`元素被用于创建一个包含用户输入的表单。

`form`元素可以通过使用不同的`attr`属性来控制其行为和样式。

`attr`是HTML中的一个重要属性,它用于定义元素的属性。

在`form`元素中,一些常用的`attr`属性包括`action`、`method`、`enctype`和`target`等。

`action`属性用于指定表单数据的处理页面,当用户提交表单时,浏览器会将数据发送到指定的URL上。

例如,`action="/process_form"`会将表单数据发送到名为`process_form`的处理页面。

`method`属性用于指定表单数据发送的方式。

常见的取值有`GET`和`POST`。

`GET`请求将表单数据附加在URL的末尾,而`POST`请求将表单数据包含在请求体中。

一般来说,涉及敏感数据或对服务器状态进行更改的操作应该使用`POST`方法。

`enctype`属性用于指定数据传输的编码方式。

常见的取值有`application/x-www-form-urlencoded`和`multipart/form-data`。

`application/x-www-form-urlencoded`是默认的编码方式,它将表单数据进行URL编码。

而`multipart/form-data`适用于上传文件,它将表单数据编码为多部分数据。

`target`属性用于指定表单数据的显示方式。

常见的取值有`_blank`、`_self`、`_parent`和`_top`等。

`_blank`表示在新窗口或标签页中打开结果页面,`_self`表示在当前窗口或标签页打开,`_parent`表示在父窗口或标签页中打开,`_top`表示在最顶层窗口或标签页中打开。

另外,`attr`属性还包括一些其他的属性,例如`autocomplete`、`novalidate`和`readonly`等。

js form表单参数

js form表单参数

js form表单参数【原创版】目录1.表单参数简介2.表单参数的分类3.表单参数的使用方法4.表单参数的注意事项5.表单参数的实际应用案例正文一、表单参数简介表单参数是 JavaScript(JS)中用于获取用户在网页表单中输入的数据的一种方式。

通过使用表单参数,网站开发者可以更方便地获取用户输入的信息,从而为用户提供更加个性化的服务。

表单参数主要包括两种类型:查询参数和表单参数。

二、表单参数的分类1.查询参数:是指通过 URL 传递给服务器的参数,主要用于搜索引擎的关键词查询、网站的搜索功能等。

2.表单参数:是指通过表单提交给服务器的参数,主要用于用户注册、登录、提交数据等操作。

三、表单参数的使用方法1.获取查询参数:使用 JavaScript 中的`window.location.search`属性可以获取 URL 中的查询参数。

2.获取表单参数:使用 JavaScript 中的`document.getElementById("表单元素名").value`属性可以获取表单中相应元素的值。

3.设置表单参数:在表单提交前,可以通过 JavaScript 修改表单元素的值,从而改变表单参数。

四、表单参数的注意事项1.表单参数和查询参数的区别:表单参数不会显示在 URL 中,而查询参数会显示在 URL 中。

2.表单参数的安全性:在传输过程中,表单参数可能会受到恶意攻击,因此需要对表单参数进行加密处理。

3.表单参数的长度限制:为了避免服务器负担过重,需要对表单参数的长度进行限制。

五、表单参数的实际应用案例1.用户注册:用户在注册时需要填写用户名、密码、邮箱等信息,这些信息可以通过表单参数获取并存储到服务器数据库中。

2.用户登录:用户在登录时需要输入用户名和密码,这些信息可以通过表单参数获取并验证是否正确。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

form 表单修改对比实践
一、form表单的基本概念
form表单是HTML中的一个重要元素,用于收集用户输入的数据并将其发送到服务器进行处理。

一个基本的form表单通常包含以下几个组件:
1. 表单标签(<form>):用于定义一个表单元素。

2. 输入字段(input):用于接收用户输入的数据,包括文本、密码、单选框、复选框等。

3. 提交按钮(<button>或<input type="submit">):用于触发表单数据的提交。

4. 重置按钮(<button>或<input type="reset">):用于重置表单数据。

5. 表单数据的处理程序(服务器端代码):用于接收、处理和存储表单提交的数据。

二、form表单的使用方法
1. 定义表单标签:
```
<form action="处理表单数据的URL" method="提交方式">
表单内容
</form>
```
其中,action属性指定处理表单数据的URL,method属性指定提交方式(通常为GET或POST)。

2. 添加输入字段:
```
<label for="字段名称">字段名称:</label>
<input type="输入类型" id="字段名称" name="字段名称" placeholder="字段说明" required>
```
其中,for属性与id属性应对应,name属性用于后台处理表单数据,placeholder属性用于显示字段说明,required属性表示该字段为必填项。

3. 添加提交按钮:
```
<button type="submit">提交</button>
```

```
<input type="submit" value="提交">
```
4. 添加重置按钮:
```
<button type="reset">重置</button>
```

```
<input type="reset" value="重置">
```
三、优化和修改form表单的实践
1. 提高用户体验:
- 使用HTML5的表单验证功能,如设置输入字段的类型为email、number等,以及添加required属性,提前对用户输入的数据进行验证,减少后台处理的错误数据。

- 添加合适的提示信息,如通过设置placeholder属性来提示用户输入要求。

- 使用JavaScript和CSS来美化和定制表单样式,使其更符合网站的整体风格,提升用户体验。

2. 提升数据传输效率:
- 使用AJAX技术,通过异步提交表单数据,减少页面的刷新和数据的传输时间,提升用户体验。

- 压缩和优化表单数据的传输格式,如使用GZIP压缩算法,减少数据的传输量。

- 合理设置表单字段的属性,如设置maxlength属性限制输入字段的最大长度,减少不必要的数据传输。

四、结论
通过对比实践,我们可以发现,在使用form表单时,优化和修改可以显著提升用户体验和数据传输效率。

合理利用HTML5的表单验证功能、添加提示信息、美化样式、使用AJAX技术和优化数据传输格式等方法,可以让form表单更加易用和高效。

因此,在开发网页和应用程序时,我们应该注重对form表单的优化和修改,以提升用户体验和数据传输效率。

相关文档
最新文档