1e41f4b71Sopenharmony_ci# \<form> Development
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciThe **\<form>** component allows the content in [\<Input>](../reference/apis-arkui/arkui-js/js-components-basic-input.md) components to be submitted and reset. For details, see [form](../reference/apis-arkui/arkui-js/js-components-container-form.md).
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci## Creating a \<form> Component
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ciCreate a **\<form>** component in the .hml file under **pages/index**.
8e41f4b71Sopenharmony_ci```html
9e41f4b71Sopenharmony_ci<!-- xxx.hml -->
10e41f4b71Sopenharmony_ci<div class="container">
11e41f4b71Sopenharmony_ci  <form style="width: 100%; height: 20%">  
12e41f4b71Sopenharmony_ci    <input type="text" style="width:80%"></input>
13e41f4b71Sopenharmony_ci  </form>
14e41f4b71Sopenharmony_ci</div>
15e41f4b71Sopenharmony_ci```
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci```css
18e41f4b71Sopenharmony_ci/* xxx.css */
19e41f4b71Sopenharmony_ci.container {
20e41f4b71Sopenharmony_ci  width:100%;
21e41f4b71Sopenharmony_ci  height:100%;
22e41f4b71Sopenharmony_ci  flex-direction: column;
23e41f4b71Sopenharmony_ci  justify-content: center;
24e41f4b71Sopenharmony_ci  align-items: center;
25e41f4b71Sopenharmony_ci  background-color: #F1F3F5;
26e41f4b71Sopenharmony_ci}
27e41f4b71Sopenharmony_ci```
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci![en-us_image_0000001267887873](figures/en-us_image_0000001267887873.png)
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci## Zooming In or Out on a Form
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ciTo implement the zoom effect after a form is clicked, add the **click-effect** attribute to the **\<form>** component. For values of **click-effect**, see [Universal Attributes](../reference/apis-arkui/arkui-js/js-components-common-attributes.md).
35e41f4b71Sopenharmony_ci```html
36e41f4b71Sopenharmony_ci<!-- xxx.hml -->
37e41f4b71Sopenharmony_ci<div class="container">
38e41f4b71Sopenharmony_ci  <form  id="formId" class="formClass" click-effect="spring-large">
39e41f4b71Sopenharmony_ci    <input type="text"></input>  
40e41f4b71Sopenharmony_ci  </form>
41e41f4b71Sopenharmony_ci</div>
42e41f4b71Sopenharmony_ci```
43e41f4b71Sopenharmony_ci
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci## Setting the Form Style
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ciAdd the **background-color** and **border** attributes.
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci```css
52e41f4b71Sopenharmony_ci/* xxx.css */
53e41f4b71Sopenharmony_ci.container {
54e41f4b71Sopenharmony_ci  width: 100%;
55e41f4b71Sopenharmony_ci  height: 100%;
56e41f4b71Sopenharmony_ci  flex-direction: column;
57e41f4b71Sopenharmony_ci  align-items: center;
58e41f4b71Sopenharmony_ci  justify-content: center;
59e41f4b71Sopenharmony_ci  background-color: #F1F3F5;
60e41f4b71Sopenharmony_ci}
61e41f4b71Sopenharmony_ci.formClass{
62e41f4b71Sopenharmony_ci  width: 80%;
63e41f4b71Sopenharmony_ci  height: 100px;
64e41f4b71Sopenharmony_ci  padding: 10px;
65e41f4b71Sopenharmony_ci  border: 1px solid #cccccc;
66e41f4b71Sopenharmony_ci}
67e41f4b71Sopenharmony_ci```
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci![en-us_image_0000001267607913](figures/en-us_image_0000001267607913.gif)
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci## Adding Response Events
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ciTo submit or reset a form, add the **submit** and **reset** events.
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci```html
78e41f4b71Sopenharmony_ci<!-- xxx.hml -->
79e41f4b71Sopenharmony_ci<div class="container">
80e41f4b71Sopenharmony_ci  <form onsubmit='onSubmit' onreset='onReset' class="form">
81e41f4b71Sopenharmony_ci    <div style="width: 100%;justify-content: center;">
82e41f4b71Sopenharmony_ci      <label>Option 1</label>
83e41f4b71Sopenharmony_ci      <input type='radio' name='radioGroup' value='radio1'></input>
84e41f4b71Sopenharmony_ci      <label>Option 2</label>
85e41f4b71Sopenharmony_ci      <input type='radio' name='radioGroup' value='radio2'></input>
86e41f4b71Sopenharmony_ci    </div>
87e41f4b71Sopenharmony_ci    <div style="width: 100%;justify-content: center; margin-top: 20px">
88e41f4b71Sopenharmony_ci      <input type="submit" value="Submit" style="width:120px; margin-right:20px;" >   
89e41f4b71Sopenharmony_ci      </input>
90e41f4b71Sopenharmony_ci      <input type="reset" value="Reset" style="width:120px;"></input>
91e41f4b71Sopenharmony_ci    </div>
92e41f4b71Sopenharmony_ci  </form>
93e41f4b71Sopenharmony_ci</div>
94e41f4b71Sopenharmony_ci```
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci```css
97e41f4b71Sopenharmony_ci/* index.css */
98e41f4b71Sopenharmony_ci.container{
99e41f4b71Sopenharmony_ci  width: 100%;
100e41f4b71Sopenharmony_ci  height: 100%;
101e41f4b71Sopenharmony_ci  flex-direction: column;
102e41f4b71Sopenharmony_ci  justify-items: center;
103e41f4b71Sopenharmony_ci  align-items: center;
104e41f4b71Sopenharmony_ci  background-color: #F1F3F5;
105e41f4b71Sopenharmony_ci}
106e41f4b71Sopenharmony_ci.form{
107e41f4b71Sopenharmony_ci  width: 100%;
108e41f4b71Sopenharmony_ci  height: 30%;
109e41f4b71Sopenharmony_ci  margin-top: 40%;
110e41f4b71Sopenharmony_ci  flex-direction: column;
111e41f4b71Sopenharmony_ci  justify-items: center;
112e41f4b71Sopenharmony_ci  align-items: center;
113e41f4b71Sopenharmony_ci}
114e41f4b71Sopenharmony_ci```
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci```js
117e41f4b71Sopenharmony_ci// xxx.js
118e41f4b71Sopenharmony_ciimport promptAction from '@ohos.promptAction';
119e41f4b71Sopenharmony_ciexport default{
120e41f4b71Sopenharmony_ci  onSubmit(result) {
121e41f4b71Sopenharmony_ci    promptAction.showToast({
122e41f4b71Sopenharmony_ci      message: result.value.radioGroup
123e41f4b71Sopenharmony_ci    })
124e41f4b71Sopenharmony_ci  },
125e41f4b71Sopenharmony_ci  onReset() {
126e41f4b71Sopenharmony_ci    promptAction.showToast({
127e41f4b71Sopenharmony_ci      message: 'Reset All'
128e41f4b71Sopenharmony_ci    })
129e41f4b71Sopenharmony_ci  }
130e41f4b71Sopenharmony_ci}
131e41f4b71Sopenharmony_ci```
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_ci
134e41f4b71Sopenharmony_ci![en-us_image_0000001267767885](figures/en-us_image_0000001267767885.gif)
135e41f4b71Sopenharmony_ci
136e41f4b71Sopenharmony_ci
137e41f4b71Sopenharmony_ci## Example Scenario
138e41f4b71Sopenharmony_ci
139e41f4b71Sopenharmony_ciSelect an option and submit or reset the form data.
140e41f4b71Sopenharmony_ci
141e41f4b71Sopenharmony_ciCreate two [\<Input>](../reference/apis-arkui/arkui-js/js-components-basic-input.md) components, set their **type** attribute to **checkbox** and **radio**, and use the **onsubmit** and **onreset** events of the **\<form>** component to submit and reset the form data, respectively.
142e41f4b71Sopenharmony_ci
143e41f4b71Sopenharmony_ci```html
144e41f4b71Sopenharmony_ci<!-- xxx.hml -->
145e41f4b71Sopenharmony_ci<div class="container">
146e41f4b71Sopenharmony_ci   <form onsubmit="formSubmit" onreset="formReset">
147e41f4b71Sopenharmony_ci <text style="font-size: 30px; margin-bottom: 20px; margin-top: 100px;">
148e41f4b71Sopenharmony_ci      <span > Form </span>
149e41f4b71Sopenharmony_ci  </text>
150e41f4b71Sopenharmony_ci    <div style="flex-direction: column;width: 90%;padding: 30px 0px;">
151e41f4b71Sopenharmony_ci     <text class="txt">Select 1 or more options</text>
152e41f4b71Sopenharmony_ci      <div style="width: 90%;height: 150px;align-items: center;justify-content: space-around;">
153e41f4b71Sopenharmony_ci        <label target="checkbox1">Option 1</label>
154e41f4b71Sopenharmony_ci        <input id="checkbox1" type="checkbox" name="checkbox1"></input>
155e41f4b71Sopenharmony_ci        <label target="checkbox2">Option 2</label>
156e41f4b71Sopenharmony_ci        <input id="checkbox2" type="checkbox" name="checkbox2"></input>
157e41f4b71Sopenharmony_ci       </div>
158e41f4b71Sopenharmony_ci       <divider style="margin: 20px 0px;color: pink;height: 5px;"></divider>
159e41f4b71Sopenharmony_ci       <text class="txt">Select 1 option</text>
160e41f4b71Sopenharmony_ci       <div style="width: 90%;height: 150px;align-items: center;justify-content: space-around;">
161e41f4b71Sopenharmony_ci         <label target="radio1">Option 1</label>
162e41f4b71Sopenharmony_ci         <input id="radio1" type="radio" name="myradio"></input>
163e41f4b71Sopenharmony_ci         <label target="radio2">Option 2</label>
164e41f4b71Sopenharmony_ci         <input id="radio2" type="radio" name="myradio"></input>
165e41f4b71Sopenharmony_ci       </div>
166e41f4b71Sopenharmony_ci       <divider style="margin: 20px 0px;color: pink;height: 5px;"></divider>
167e41f4b71Sopenharmony_ci       <text class="txt">Text box</text>
168e41f4b71Sopenharmony_ci       <input type="text" placeholder="Enter content." style="margin-top: 50px;"></input>
169e41f4b71Sopenharmony_ci       <div style="width: 90%;align-items: center;justify-content: space-between;margin: 40px;">
170e41f4b71Sopenharmony_ci         <input type="submit">Submit</input>
171e41f4b71Sopenharmony_ci         <input type="reset">Reset</input>
172e41f4b71Sopenharmony_ci       </div>
173e41f4b71Sopenharmony_ci    </div>
174e41f4b71Sopenharmony_ci  </form>
175e41f4b71Sopenharmony_ci</div>
176e41f4b71Sopenharmony_ci```
177e41f4b71Sopenharmony_ci
178e41f4b71Sopenharmony_ci```css
179e41f4b71Sopenharmony_ci/* index.css */
180e41f4b71Sopenharmony_ci.container {
181e41f4b71Sopenharmony_ci  width: 100%;
182e41f4b71Sopenharmony_ci  height: 100%;
183e41f4b71Sopenharmony_ci  flex-direction:column;
184e41f4b71Sopenharmony_ci  align-items:center;
185e41f4b71Sopenharmony_ci  background-color:#F1F3F5;
186e41f4b71Sopenharmony_ci}
187e41f4b71Sopenharmony_ci.txt {
188e41f4b71Sopenharmony_ci  font-size:33px;
189e41f4b71Sopenharmony_ci  font-weight:bold;
190e41f4b71Sopenharmony_ci  color:darkgray;
191e41f4b71Sopenharmony_ci}
192e41f4b71Sopenharmony_cilabel{
193e41f4b71Sopenharmony_ci  font-size: 20px;
194e41f4b71Sopenharmony_ci}
195e41f4b71Sopenharmony_ci```
196e41f4b71Sopenharmony_ci
197e41f4b71Sopenharmony_ci```js
198e41f4b71Sopenharmony_ci// xxx.js
199e41f4b71Sopenharmony_ciimport promptAction from '@ohos.promptAction';
200e41f4b71Sopenharmony_ciexport default {
201e41f4b71Sopenharmony_ci  formSubmit() {
202e41f4b71Sopenharmony_ci    promptAction.showToast({
203e41f4b71Sopenharmony_ci      message: 'Submitted.'
204e41f4b71Sopenharmony_ci    })
205e41f4b71Sopenharmony_ci  },
206e41f4b71Sopenharmony_ci  formReset() {
207e41f4b71Sopenharmony_ci    promptAction.showToast({
208e41f4b71Sopenharmony_ci      message: 'Reset.'
209e41f4b71Sopenharmony_ci    })
210e41f4b71Sopenharmony_ci  }
211e41f4b71Sopenharmony_ci}
212e41f4b71Sopenharmony_ci```
213e41f4b71Sopenharmony_ci
214e41f4b71Sopenharmony_ci![en-us_image_0000001222967788](figures/en-us_image_0000001222967788.gif)
215