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 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 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 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 215